Azure Release Pipeline中Python脚本如何读取环境变量?
在Azure Release Pipeline中让Python脚本读取变量组变量的方法
由于Azure Release Pipeline的Python任务没有提供Build Pipeline里那样的env配置项,你可以通过以下几种方式实现变量组变量在Python脚本中的读取:
方法1:前置脚本任务显式注入环境变量
在Python任务之前添加PowerShell或Bash任务,将变量组中的变量映射为环境变量,之后Python脚本即可通过os.environ读取。
PowerShell示例
- 在Release Pipeline中添加「PowerShell」任务,置于Python任务之前
- 在「脚本」框中输入:
# 映射变量组中的变量到环境变量 $env:DB_CONN = "$(DatabaseConnectionString)" $env:API_TOKEN = "$(ApiToken)"
- 后续Python任务运行脚本时,即可用以下代码读取:
import os db_conn = os.environ["DB_CONN"] api_token = os.environ["API_TOKEN"]
Bash示例
如果使用Linux代理,添加「Bash」任务,脚本内容:
export DB_CONN=$(DatabaseConnectionString) export API_TOKEN=$(ApiToken)
方法2:直接读取Azure自动注入的环境变量
Azure Pipeline会自动将非秘密变量注入到环境中,但变量名会被转换为大写+下划线替换特殊字符的格式:
- 变量组中的
MyAppSetting→ 环境变量MYAPPSETTING - 变量组中的
App.Api.Key→ 环境变量APP_API_KEY
Python脚本中直接读取即可:
import os app_setting = os.environ.get("MYAPPSETTING") api_key = os.environ.get("APP_API_KEY")
注意:秘密变量不会被自动注入环境,必须使用方法1的显式赋值方式才能读取。
方法3:通过命令行参数传递变量
如果不想依赖环境变量,也可以在Python任务的「脚本参数」中直接传递变量组变量:
- 在Python任务的「脚本参数」中填入:
--db-conn $(DatabaseConnectionString) --api-token $(ApiToken)
- Python脚本通过
argparse解析参数:
import argparse parser = argparse.ArgumentParser() parser.add_argument("--db-conn") parser.add_argument("--api-token") args = parser.parse_args() db_conn = args.db_conn api_token = args.api_token
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

