如何获取Azure Pipeline中对象类型参数的键值对值?
Azure Pipeline Object类型参数正确取值方法
直接在脚本任务中引用
无论是Bash还是PowerShell任务,都可以通过${{ parameters.info.info1 }}编译时表达式直接引用object参数的子项,示例如下:
Bash任务示例
- bash: | # 先打印验证参数值是否正确 echo "Key Vault Name: ${{ parameters.info.info1 }}" # 执行az命令 az keyvault secret set --vault-name "${{ parameters.info.info1 }}" --name test-secret --value "test-content" displayName: '设置Key Vault密钥'
PowerShell任务示例
- powershell: | # 打印验证参数 Write-Host "Key Vault Name: ${{ parameters.info.info1 }}" # 执行az命令 az keyvault secret set --vault-name ${{ parameters.info.info1 }} --name test-secret --value "test-content" displayName: 'PowerShell中设置Key Vault密钥'
赋值给Pipeline变量后复用
如果需要在多个任务中重复使用该参数值,可将其赋值为Pipeline变量:
静态定义变量(编译时)
variables: keyVaultName: ${{ parameters.info.info1 }} - bash: | az keyvault secret set --vault-name $(keyVaultName) --name test-secret --value "test-content" displayName: '使用预定义变量'
动态设置变量(运行时)
- bash: | # 通过logging command设置变量 echo "##vso[task.setvariable variable=keyVaultName]${{ parameters.info.info1 }}" displayName: '动态设置变量' - bash: | az keyvault secret set --vault-name $(keyVaultName) --name test-secret --value "test-content" displayName: '使用动态变量'
常见排查方向
- 验证参数有效性:先在脚本中打印参数值,确认编译时替换是否生效,排除参数传递错误
- 特殊字符处理:若参数值包含空格或特殊字符,需用双引号包裹,如
"${{ parameters.info.info1 }}" - 权限排查:如果
az命令无返回结果,大概率不是参数问题,需检查服务连接是否拥有Key Vault的写入权限
内容的提问来源于stack exchange,提问作者eliew
相关产品推荐
相关产品推荐

