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

如何判断脚本运行在本地环境还是Azure DevOps环境

解决方案

Azure DevOps 运行 Pipeline 时会自动注入一批专属预置环境变量,直接判断这类变量是否存在即可快速区分本地 Linux 环境和 Azure DevOps 运行环境。

常用判断方法

  • 检查 SYSTEM_TEAMPROJECTID 变量:只要脚本运行在 Azure DevOps Pipeline 上下文内,这个变量就必然存在,对应当前 Pipeline 关联的团队项目 ID,本地环境默认不会存在该变量。
  • 检查 AZURE_HTTP_USER_AGENT 变量:Azure DevOps 所有类型的 Agent 运行时都会携带该变量,值内会包含 VSTS 或 Azure DevOps 标识,和本地环境的变量重合概率极低。

你可以任选一个变量做判断,也可以组合多个变量降低误判概率,Python 示例代码如下:

import os

def is_running_on_azure():
    return os.getenv("SYSTEM_TEAMPROJECTID") is not None

备选高可靠方案

如果担心环境变量被人为篡改导致误判,可以主动给本地环境添加专属标识:

  1. 在本地 Linux 环境的 shell 配置文件(比如 ~/.bashrc、~/.zshrc)中添加自定义变量:
    export LOCAL_DEV_MARK=1
    
  2. 脚本内优先判断该变量是否存在,存在则判定为本地环境,否则判定为 Azure DevOps 环境,该方案不存在误判可能,也不受云侧预置变量规则调整的影响。

注意事项

  • 不推荐依赖 Azure 虚拟机元数据服务做判断:如果你使用微软托管的 Azure DevOps Agent,部分场景下脚本没有元数据服务的访问权限,判断成功率远低于直接使用 Pipeline 内置环境变量。
  • 如果后续需要兼容其他 CI 环境,只需要新增对应平台的专属变量判断逻辑即可,比如 GitHub Actions 可以判断 GITHUB_ACTIONS 变量,GitLab CI 可以判断 GITLAB_CI 变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:54:00