从管道变量中检索变量值的YAML管道定义



我有一个YAML文件,它形成了Azure DevOps管道。管道本身定义了YAML的variables部分所需的四个变量。。。

variables:
environmentIdentifier: "$(environmentIdentifier)"
keyVaultSourceName: "$(keyVaultSourceName)"
location: "$(location)"
locationIdentifier: "$(locationIdentifier)"

变量肯定是为管道的每次运行设置的,但当它运行时,我在脚本中遇到错误,表明这些变量没有正确填充。。。

错误:(InvalidResourceGroup(提供的资源组名称"rg main-$(locationIdentifier("包含以下无效字符:"$:"。名称只能是字母、数字、'-'、'.'、'(','('或'_'。

我也试过。。。

  • $env:location
  • ${{variables['location']}}

。。。但是产生了相同的错误。

我应该如何在管道定义的variables部分中正确地声明变量,因为它们的值是从管道的变量中检索的?

您需要定义为:

variables:
- name: location
value: 'Australia Southeast' 

如果你想在后期将它们作为模板表达式,请使用:

${{ variables.location }}

如果你想在脚本中使用它们:

steps: 
- bash: echo $(location)
- powershell: echo $(location)
- script: echo $(location)

有关详细信息,请查看此链接和下面提取的示例。

variables:
- name: one
value: initialValue 
steps:
- script: |
echo ${{ variables.one }} # outputs initialValue
echo $(one)
displayName: First variable pass
- bash: echo '##vso[task.setvariable variable=one]secondValue'
displayName: Set new variable value
- script: |
echo ${{ variables.one }} # outputs initialValue
echo $(one) # outputs secondValue
displayName: Second variable pass

最新更新