我有一个 YAML 文件,它构成了 Azure DevOps 管道。管道本身定义了 YAML 的 variables
部分所需的四个变量...
variables:
environmentIdentifier: "$(environmentIdentifier)"
keyVaultSourceName: "$(keyVaultSourceName)"
location: "$(location)"
locationIdentifier: "$(locationIdentifier)"
肯定会为管道的每次运行设置变量,但是当它运行时,我在脚本中进一步遇到错误,表明这些变量未正确填充...
<块引用>错误:(InvalidResourceGroup) 提供的资源组名称“rg-main-$(locationIdentifier)”具有以下无效字符:“$:”。名称只能是字母、数字、“-”、“.”、“(”、“)”或“_”。
我也试过了...
$env:location
${{variables['location']}}
...但发生了同样的错误。
我应该如何在管道定义的 variables
部分正确声明变量,其中的值是从管道的变量中检索的?
答案 0 :(得分:0)
您需要定义为:
variables:
- name: location
value: 'Australia Southeast'
如果您希望在稍后阶段将它们用作模板表达式,请使用:
${{ variables.location }}
如果你想在脚本中使用它们:
steps:
- bash: echo $(location)
- powershell: echo $(location)
- script: echo $(location)
查看此 Link 和以下提取的示例以获取更多信息。
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