You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps:如何在步骤中获取含运行时值的所有管道变量?

Azure DevOps 获取包含运行时输入值的所有管道变量

问题原因

你使用的az pipelines variable list --pipeline-id $(System.DefinitionId)命令,查询的是管道定义层面的变量配置,只会返回变量的默认值、是否允许覆盖等属性,无法获取当前运行实例中用户在队列时输入的实际变量值。

解决方案

方法1:直接打印环境变量

Azure DevOps会将所有管道变量(包括运行时输入的值)自动注入到步骤的环境变量中,在bash步骤里直接打印即可:

steps:
- bash: |
    # 打印所有环境变量(包含所有管道变量)
    printenv
    # 可选:过滤只显示自定义管道变量(示例:过滤以"MY_"开头的变量)
    # printenv | grep "^MY_"
  displayName: '显示所有带运行时值的管道变量'

方法2:通过REST API获取当前运行实例的变量

调用Azure DevOps的Build REST API,获取当前运行实例的详细信息,其中包含运行时的变量值:

steps:
- bash: |
    # 调用API获取当前构建实例的变量数据
    curl -s -H "Authorization: Bearer $(System.AccessToken)" \
      "$(System.TeamFoundationCollectionUri)$(System.TeamProjectId)/_apis/build/builds/$(System.RunId)?api-version=7.1-preview.7" | jq '.variables'
  displayName: '通过REST API获取运行时变量'

注意:如果代理池中没有安装jq,可以用Python替代解析JSON:

curl -s ... | python -m json.tool

重要提示

对于标记为秘密变量(isSecret: true)的变量,无论哪种方法都无法获取明文值,这是Azure DevOps的安全保护机制,避免敏感数据泄露。

内容的提问来源于stack exchange,提问作者Galileo123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 19:22:58