覆盖发布管道中的模板参数不起作用

时间:2019-07-03 12:33:12

标签: azure-devops

在发布管道的Devops中,我正在配置变量(将为Dev部署的资源的名称,预生产阶段)。因此,在覆盖模板参数下,我指定了-accountName $ {accountName),但是名称如变量中所述(对于Dev,则为preprod)(不接受),而是从模板参数json中获取值。请提出解决方案。

2 个答案:

答案 0 :(得分:0)

您可以尝试在管道中使用$ {{variables.accountName}}代替$(accountName)来将参数传递给模板。您可以将varaible system.debug设置为true,以检查管道的完整日志。在InitializePipeline的最后一部分中,您可以查看生成的Yaml的外观。似乎$ {{}}是在处理模板等过程中评估的,而$()是稍后评估的。

答案 1 :(得分:0)

我也遇到了类似的问题,但解决方案略有不同。

我的示例 azure-pipelines.yml 其中 flag 参数没有在模板中被覆盖。

parameters:
  - name: var1
    type: string
  - name: var2
    type: string
  - name: bool1
    type: bool

...
omitted
...

          - task: AzureResourceManagerTemplateDeployment@3
            inputs:
              deploymentScope: 'Resource Group'
              azureResourceManagerConnection: ''
              subscriptionId: ''
              action: 'Create Or Update Resource Group'
              resourceGroupName: rg-${{parameters.var1}}-${{parameters.var2}}
              location: ''
              templateLocation: 'Linked artifact'
              csmFile: $(System.DefaultWorkingDirectory)/arm.json
              csmParametersFile: $(System.DefaultWorkingDirectory)/arm.parameters.json
              deploymentMode: 'Incremental'
              overrideParameters: >-
                -string1 ${{parameters.var1}}
                -string2 ${{parameters.var2}}
                -flag ${{parameters.bool1}}

问题出在我的 overrideParameters 块样式上。
我正在使用 >- 删除最后的所有换行符,但 > 可以在最后放置一个换行符。了解详情here