Автоматизированное развертывание конвейеров ADF с использованием конвейеров CI / CD Azure DevOps - PullRequest
0 голосов
/ 13 января 2020

Я автоматизировал процесс развертывания конвейера ADF Azure, используя Azure конвейеры CI / CD DevOps с помощью https://docs.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment (т. Е.) Развертывание конвейеров из DEV в среду ADD ADD. Я использую шаблоны ARM ADF для развертывания конвейеров из одной среды в другую. Следовательно, у меня будет отдельный ARM_Parameter. json, соответствующий каждой среде (Dev / Prod). Проблема в том, что каждый конвейер ADF может иметь несколько базовых параметров, которые не параметризованы и, следовательно, не будут доступны в параметре. json. Ребята, можете ли вы помочь мне заменить значения Dev значениями PROD в разделе базовых параметров в каждом конвейере ADF автоматически во время этого процесса автоматического развертывания конвейера ADF с использованием конвейеров CI / CD?

enter image description here

Ответы [ 3 ]

1 голос
/ 11 марта 2020

Вы можете использовать Пользовательский параметр с шаблоном ARM . Пользовательский параметр для конвейера может выглядеть следующим образом:

"Microsoft.DataFactory/factories/pipelines": {
    "properties": {
        "parameters": {
                "RUN_ENVIRONMENT": "=:-:string"
        }
    }
},
1 голос
/ 14 января 2020

Я вижу два варианта:

  1. Если это только для этого параметра RUN_ENVIRONMENT, вы можете изменить свой параметр на переменную и использовать системную переменную @pipeline (). DataFactory, чтобы определить, в какой среде вы находитесь работает в.
  2. В противном случае вы можете настроить фабрику данных так, чтобы она генерировала параметры ARM для значений параметров конвейера по умолчанию, но вам нужно будет создать собственный файл arm-template-parameters-definition. json. Проверьте документацию здесь
0 голосов
/ 14 января 2020

Замените значения Dev значениями PROD в разделе базовых параметров

На основе вашего скриншота RUN_ENVIRONMENT - это параметр конвейера, что означает, что при преобразовании в шаблон ARM, его формат такой:

 "resources": [
    {
      ....
      ....
      "properties": {
        "parameters": {
          "RUN_ENVIRONMENT": {
            "type": "string",
            "defaultValue": "pro"
          }
        },...      
      },...
    }
  ]

Его нельзя заменить с помощью Override template parameters в задаче развертывания ARM. Поскольку он будет запрашивать The template parameters 'environment' in the parameters file are not valid; they are not present in the original template and can therefore not be provided at deployment time.


Чтобы обойти эту ошибку, просто установите одно расширение 1015 * и добавьте задачу Replace token в конвейер, который перед задачей развертывания ARM. И эта задача заменит значение контента во время выполнения сборки:

enter image description here

Чтобы узнать, как применить эту задачу в нашем конвейере, вы можете обратиться на мой ответ1 и ответ2

...