【问题标题】:Azure ARM template : Setting parameter value using a variableAzure ARM 模板:使用变量设置参数值
【发布时间】:2020-07-22 09:41:40
【问题描述】:

我正在尝试将环境参数传递给一个模板,然后再传递给另一个模板(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'

【问题讨论】:

  • 嗨,Sam,您似乎找到了解决方案。请考虑将其添加为答案并标记,以便更多具有类似错误消息的成员可以从中受益。只是提醒can I ...
  • 好的,刚刚完成。

标签: azure azure-pipelines azure-resource-manager


【解决方案1】:

我不相信您可以在 ARM 模板参数中使用变量替换。但是你可以在变量中这样做。

所以在 master.yml 中,定义一个变量部分,并将你的 webAppName 组合成一个变量。然后将该变量传递给 webapp.yml 而不是使用参数。

【讨论】:

  • 谢谢,但实际上这不是问题所在。这(通常)是我的 YAML 中的一个愚蠢的缩进问题......上面的脚本现在可以正常工作了。
  • ARM 模板给了我一个复杂的概念。我感觉到你的痛苦。
【解决方案2】:

问题是我的一个 YAML 文件中的缩进不正确。添加一个额外的选项卡解决了它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    相关资源
    最近更新 更多