我尝试将环境参数传递给一个模板,然后传递给另一个模板(行 webAppName: 'my-webapp-${{parameters.environment}}'
)
我收到错误:此上下文中不允许使用模板表达式
。难道不能这样做吗?
主管道(为了清晰起见,只是必要的代码)
- 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 中,而不是使用参数。
关于Azure ARM 模板 : Setting parameter value using a variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63031302/