Azure ARM 模板:使用变量设置参数值
Azure ARM template : Setting parameter value using a variable
我正在尝试将环境参数传递给一个模板,然后再传递给另一个模板(第 webAppName: 'my-webapp-${{parameters.environment}}'
行)
我收到错误:A template expression is not allowed in this context
。这不可能吗?
主要管道(为清楚起见,仅是必要的代码)
- stage: deploy
displayName: 'Deploy Dev Stage'
dependsOn: build
condition: succeeded()
jobs:
- deployment: deploymentjob
displayName: deployment job
environment: dev
variables:
- template: variables/dev.yml
strategy:
runOnce:
deploy:
steps:
- template: templates/pipeline-deploy/master.yml
parameters:
environment: 'dev'
master.yml
parameters:
environment: ''
steps:
- template: webapp.yml
parameters:
webAppName: 'my-webapp-${{parameters.environment}}'
然后 webapp.yml
parameters:
webAppName: ''
steps:
- task: AzureRmWebAppDeployment@4
displayName: 'Deploy my app'
inputs:
azureSubscription: '(#some id)'
WebAppName: ${{parameters.webAppName}}
packageForLinux: '$(workFolder)/my-package.zip'
我认为您不能在 ARM 模板参数中使用变量替换。但是您可以在变量中这样做。
因此在master.yml中定义一个变量部分,并将您的webAppName 组成一个变量。然后将该变量传递给 webapp.yml 而不是使用参数。
问题是我的一个 YAML 文件中的缩进不正确。添加一个额外的选项卡解决了它。
我正在尝试将环境参数传递给一个模板,然后再传递给另一个模板(第 webAppName: 'my-webapp-${{parameters.environment}}'
行)
我收到错误:A template expression is not allowed in this context
。这不可能吗?
主要管道(为清楚起见,仅是必要的代码)
- stage: deploy
displayName: 'Deploy Dev Stage'
dependsOn: build
condition: succeeded()
jobs:
- deployment: deploymentjob
displayName: deployment job
environment: dev
variables:
- template: variables/dev.yml
strategy:
runOnce:
deploy:
steps:
- template: templates/pipeline-deploy/master.yml
parameters:
environment: 'dev'
master.yml
parameters:
environment: ''
steps:
- template: webapp.yml
parameters:
webAppName: 'my-webapp-${{parameters.environment}}'
然后 webapp.yml
parameters:
webAppName: ''
steps:
- task: AzureRmWebAppDeployment@4
displayName: 'Deploy my app'
inputs:
azureSubscription: '(#some id)'
WebAppName: ${{parameters.webAppName}}
packageForLinux: '$(workFolder)/my-package.zip'
我认为您不能在 ARM 模板参数中使用变量替换。但是您可以在变量中这样做。
因此在master.yml中定义一个变量部分,并将您的webAppName 组成一个变量。然后将该变量传递给 webapp.yml 而不是使用参数。
问题是我的一个 YAML 文件中的缩进不正确。添加一个额外的选项卡解决了它。