azure - Azure Devops Pipeline 中的变量组 yaml 变量表达式
问题描述
我在使用 AzureKeyVault 任务的变量表达式时遇到了困难。azureSubscription 和 KeyVaultName 值表达式都没有被解析为在变量组中具有变量。如果我在 yaml 中以任何方式手动定义这些变量,它就会起作用。在我在阶段开始时导入的 azure-pipelines.yml 或模板 variables_test.yml 中。
我在文档中读到,变量组中的变量应该像这样 $(var) 使用,但是它会抛出一个错误,说像 '$(var)' 这样的订阅不存在。
模板:azure-pipelines.yml:
- stage: Test
variables:
- template: variables_Test.yml # Template reference
- group: testVariableGroup
dependsOn: []
jobs:
- job: Test
steps:
- task: AzureKeyVault@1
inputs:
azureSubscription: ${{ variables.spn_kv_app }}
KeyVaultName: ${{ variables.keyVaultName }}
SecretsFilter: '*'
在登台的日志中,我可以看到从变量组中设置的变量:
Job preparation parameters
Variables:
keyVaultName: $[ variablegroups.testVariableGroup.keyVaultName ]
resourceGroupName: $[ variablegroups.testVariableGroup.resourceGroupName ]
spn_cd_app: $[ variablegroups.testVariableGroup.spn_cd_app ]
spn_kv_app: $[ variablegroups.testVariableGroup.spn_kv_app ]
storageAccountName: $[ variablegroups.testVariableGroup.storageAccountName ]
需要注意的重要一点是,这些变量未设置为变量组中的机密。
PS。对于任何有兴趣的人。我创建了票:
https://github.com/MicrosoftDocs/vsts-docs/issues/7586
如果有任何事情会得到解决,我会发布答案。
解决方案
Azure Devops Pipeline 中的变量组 yaml 变量表达式
它应该与$(var)
. 尝试检查以下测试 yaml 文件:
主要 Yaml:
trigger:
- master
variables:
- group: Test2
pool:
vmImage: 'windows-latest'
stages:
- template: azure-pipelines.yml
模板azure-pipelines.yml
:
stages:
- stage: Test
dependsOn: []
jobs:
- job: Test
steps:
- task: AzureKeyVault@1
inputs:
azureSubscription: $(spn_kv_app)
KeyVaultName: $(keyVaultName)
SecretsFilter: '*'
还有我的变量组:
作为测试结果:
所以,它在我这边工作得很好。请检查您的变量组名称和变量名称。
希望这可以帮助。
推荐阅读
- python - 如何避免使用“eval”函数循环遍历属性列表
- curl - 使用curl post将slurm sacct命令的终端输出写入influxdb?
- powershell - 我如何根据有输出文件的时间来衡量完成百分比?
- go - Why is a float64 type number throwing int related error in Go
- java - Android 得到 html 响应而不是 json 响应 | 价值
嗨,我很难弄清楚导致此错误的原因。直到我尝试使用调试并发现我得到的是 html 响应而不是 json 响应。请帮我解决这个问题。
检查这个java代码:
从这一点开始,错误被触发
- python - 修复了 Django 提供的默认值问题
- reactjs - Material-DataTable 禁用内置搜索
- xslt - Firefox Quantum v67 不呈现 XSLT (xsl:call-template & xsl:with-param)
- kubernetes - 在 Kubernetes (GKE) 上部署 Strapi
- go - 去 XML 抑制自动生成的标签?