Вытяните переменную Azure DevOps в шаблон ARM - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь использовать 1 шаблон ARM для всех развертываний, поэтому я думаю, что могу использовать конвейерную переменную Azure DevOps для некоторой замены строки для имен ресурсов, например:

myapi -dev-appserviceplan myapi-prod-appserviceplan

Где 'dev' и 'prod' являются переменными в конвейере выпуска, но я не уверен, как ссылаться на них в шаблоне ARM?

Ответы [ 2 ]

0 голосов
/ 01 мая 2020

Просто выбрасываем альтернативу использованию YAML конвейеров против Classi c Сборка и выпуск конвейеров.

Это позволит вам собирать и развертывать в одном и том же конвейере и может считывать переменные из конвейера, определяя их либо в группе переменных, в файле переменной YAML, либо в переменной, которую указывает c конвейер выполнения (https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops&tabs=yaml%2Cbatch)

0 голосов
/ 21 апреля 2020

Вы можете использовать задачу замены токена (если вы выберете это, вам нужно определить токен в файле, а затем определить переменные в вашем конвейере, которые будут использоваться для замены этих токенов. Вы можете определить группы переменных для хранения Переменные для среды и переключение между переменными для выпусков), но для вашего случая я рекомендую использовать файлы параметров для среды. Таким образом, вы будете просто изменять файл для среды при развертывании.

Взято из документов :

Для развертывания в разных средах создайте более одного параметра файл. При именовании файла параметров добавьте способ определения его использования. Например, используйте azuredeploy.parameters-dev. json и azuredeploy.parameters-prod. json

Затем вы можете использовать AzureResourceGroupDeployment@2, чтобы выбрать правильный файл параметров (в случае ниже это WebSite.parameters.json)

- task: AzureResourceGroupDeployment@2
  displayName: 'Deploy template'
  inputs:
    deploymentScope: 'Resource Group'
    ConnectedServiceName: 'demo-deploy-sp'
    subscriptionName: '01234567-89AB-CDEF-0123-4567890ABCDEF'
    action: 'Create Or Update Resource Group'
    resourceGroupName: 'demogroup'
    location: 'Central US'
    templateLocation: 'URL of the file'
    csmFileLink: '$(artifactsLocation)WebSite.json$(artifactsLocationSasToken)'
    csmParametersFileLink: '$(artifactsLocation)WebSite.parameters.json$(artifactsLocationSasToken)'
    overrideParameters: '-_artifactsLocation $(artifactsLocation) -_artifactsLocationSasToken "$(artifactsLocationSasToken)"'
    deploymentMode: 'Incremental'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...