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

如何将Azure变量组中的变量设为Azure Pipeline的环境变量?

Azure Pipeline中把数据库变量组配置为Python集成测试的环境变量

方法1:直接加载变量组(推荐)

Azure Pipeline本身支持直接引用变量组,不用额外写脚本,操作很简单:

  1. 在Pipeline的YAML开头添加变量组引用:
variables:
- group: <你的变量组名称或ID>
  1. 在运行pytest的script任务里,直接把变量组里的数据库变量映射为环境变量(Azure也会自动把变量组的变量转为环境变量,变量名里的.会被替换成_)

修改后的Pipeline示例:

variables:
- group: <数据库变量组ID/名称>

steps:
  - script: |
      pdm run pytest \
        --variables "$VARIABLE_FILE" \
        --napoleon-docstrings \
        --doctest-modules \
        --color=yes \
        --junitxml=junit/test-results.xml \
        integration
    env:
      # 手动映射变量组变量到环境变量(需要重命名时用)
      DB_HOST: $(DB_HOST_FROM_GROUP)
      DB_USER: $(DB_USER_FROM_GROUP)
      DB_PASSWORD: $(DB_PASSWORD_FROM_GROUP)
      <原来的其他环境变量>

在Python测试代码里,用os模块读取环境变量即可:

import os

# 读取环境变量
db_host = os.environ.get("DB_HOST")
db_user = os.environ.get("DB_USER")
db_password = os.environ.get("DB_PASSWORD")

# 初始化数据库连接
# conn = your_db_connect_function(db_host, db_user, db_password)

方法2:通过az cli导出变量组(特殊场景用)

如果必须用az cli命令获取变量,可以用PowerShell解析输出并设置为Pipeline任务变量,传递给后续测试步骤:

steps:
  - powershell: |
      # 用JSON格式获取变量组内容(比table格式更易解析)
      $vars = az pipelines variable-group variable list --group-id <some_group_id> --output json | ConvertFrom-Json
      # 遍历变量,设置为Pipeline任务变量(后续任务可直接引用)
      foreach ($var in $vars.PSObject.Properties) {
        # issecret参数自动处理敏感变量的加密逻辑
        Write-Host "##vso[task.setvariable variable=$($var.Name);issecret=$($var.Value.isSecret)]$($var.Value.value)"
      }
    displayName: "加载数据库变量组"
    env:
      # 给az cli授权,使用Pipeline自带的访问令牌
      AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)

  - script: |
      pdm run pytest \
        --variables "$VARIABLE_FILE" \
        --napoleon-docstrings \
        --doctest-modules \
        --color=yes \
        --junitxml=junit/test-results.xml \
        integration
    env:
      DB_HOST: $(DB_HOST)
      DB_USER: $(DB_USER)
      DB_PASSWORD: $(DB_PASSWORD)
      <原来的其他环境变量>

注意事项

  • 数据库密码这类敏感变量,在变量组里要设为秘密变量,Pipeline会自动加密,日志中也不会明文显示。
  • 如果变量组里的变量名带.(比如DB.HOST),Azure会自动转为DB_HOST作为环境变量,Python里对应读取DB_HOST即可。
  • 优先用方法1,减少脚本维护成本,避免额外的解析逻辑出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 23:46:01