You need to enable JavaScript to run this app. 如何将Azure DevOps变量组变量作为环境变量在脚本中直接调用
优惠活动
大模型
产品
解决方案
定价
更多

如何将Azure DevOps变量组变量作为环境变量在脚本中直接调用

问题解答

可以实现,不需要逐个手动在env参数中添加变量组内变量,你构想的yaml中bash步骤下的group参数不是官方支持的语法,无法生效,以下是可落地的实现方案,后续新增变量组内变量无需修改yaml配置:

实现原理

Azure DevOps Linux代理默认会将当前流水线所有引用的变量(包括变量组内变量)序列化存储到预定义环境变量BUILD_VARIABLES的JSON字符串中,我们只需要在bash步骤中解析该JSON,动态导出为环境变量即可。

完整yaml示例

pool:
  vmImage: ubuntu-latest
variables:
  - group: myGroup # 引用你的变量组,不需要做其他额外配置

stages:
  - stage: test
    jobs:
      - job: test
        displayName: Test
        steps:
          - bash: |
              # 解析BUILD_VARIABLES,导出所有非涉密变量为环境变量
              for var in $(echo "$BUILD_VARIABLES" | jq -r 'to_entries[] | select(.value.isSecret == false) | .key + "=" + .value.value'); do
                export "$var"
              done
              # 此时所有变量组内非涉密变量已经是环境变量,直接执行Python脚本即可
              python3 your_script.py
            displayName: 动态导出变量组变量并执行Python脚本

Python侧使用示例

脚本不需要做额外适配,直接读取系统环境变量即可:

import os
# 直接读取变量组内的变量
print(os.getenv("你的变量名"))

注意事项

  • 标记为涉密的变量组变量不会被包含在BUILD_VARIABLES中,这类变量为了安全还是需要单独手动映射到bash步骤的env参数中
  • 上述脚本依赖jq工具,Ubuntu官方托管代理默认已经预装,如果你使用私有代理请提前安装

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 19:42:04