Azure Batch 运行时环境变量

Azure Batch 服务在计算节点上设置以下环境变量。 可以在任务命令行以及命令行运行的程序和脚本中引用这些环境变量。

有关将环境变量与 Batch 配合使用的详细信息,请参阅 任务的环境设置

环境变量可见性

这些环境变量只在任务用户(节点上执行任务的用户帐户)的上下文中可见。 通过远程桌面协议(RDP)或安全外壳(SSH) 远程连接到 计算节点并列出环境变量时,不会看到这些变量。 这是因为用于远程连接的用户帐户与任务使用的帐户不同。

若要获取环境变量的当前值,请启动 cmd.exe 在 Windows 计算节点或 /bin/sh Linux 节点上:

cmd /c set <ENV_VARIABLE_NAME>

/bin/sh -c "printenv <ENV_VARIABLE_NAME>"

环境变量的命令行扩展

计算节点上的任务执行的命令行不会在 shell 下运行。 这意味着这些命令行无法原生使用 shell 的功能,比如环境变量扩展(包括 PATH 的扩展)。 若要使用这些功能,必须在命令行中调用 shell。 例如,在 Windows 计算节点或 cmd.exe Linux 节点上启动/bin/sh

cmd /c MyTaskApplication.exe %MY_ENV_VAR%

/bin/sh -c "MyTaskApplication $MY_ENV_VAR"

环境变量

变量名称 DESCRIPTION 可用性 示例:
AZ_BATCH_ACCOUNT_NAME 任务所属的 Batch 帐户的名称。 所有任务。 mybatchaccount
AZ_BATCH_ACCOUNT_URL Batch 帐户的 URL。 所有任务。 https://myaccount.chinanorth.batch.chinacloudapi.cn
AZ_BATCH_APP_PACKAGE 所有应用包环境变量的前缀。 例如,如果将应用程序“FOO”版本“1”安装到池中,则环境变量AZ_BATCH_APP_PACKAGE_FOO_1(在 Linux 上)或 AZ_BATCH_APP_PACKAGE_FOO#1(在 Windows 上)。 AZ_BATCH_APP_PACKAGE_FOO_1指向下载包的位置(文件夹)。 使用应用包的默认版本时,请使用不带版本号的AZ_BATCH_APP_PACKAGE环境变量。 如果在 Linux 中,并且应用程序包名称为“Agent-linux-x64”,版本为“1.1.46.0”,则环境名称实际上是:AZ_BATCH_APP_PACKAGE_agent_linux_x64_1_1_46_0,使用下划线和小写。 有关详细信息,请参阅 执行已安装的应用程序 包含关联应用包的任何任务。 如果节点本身具有应用程序包,则也可用于所有任务。 AZ_BATCH_APP_PACKAGE_FOO_1 (Linux) 或 AZ_BATCH_APP_PACKAGE_FOO#1 (Windows)
AZ_BATCH_AUTHENTICATION_TOKEN 一个身份验证令牌,用于授予对有限的批处理服务操作的访问权限。 仅当添加任务时设置 authenticationTokenSettings 时,此环境变量才存在。 令牌值在 Batch API 中用作凭据来创建 Batch 客户端,例如在 BatchClient.Open() .NET API 中。 令牌不支持专用网络。 所有任务。 OAuth2 访问令牌
AZ_BATCH_CERTIFICATES_DIR 在任务 工作目录 中,有一个存储证书的目录,以供 Linux 计算节点使用。 此环境变量不适用于 Windows 计算节点。 所有任务。 /mnt/batch/tasks/workitems/batchjob001/job-1/task001/certs
AZ_BATCH_HOST_LIST 分配给多实例任务的节点列表,采用 nodeIP,nodeIP 格式。 多实例主要和子任务。 10.0.0.4,10.0.0.5
AZ_BATCH_IS_CURRENT_NODE_MASTER 指定当前节点是否为 多实例任务的主节点。 可能的值为 truefalse 多实例主要和子任务。 true
AZ_BATCH_JOB_ID 任务所属的作业的 ID。 除启动任务以外的所有任务。 batchjob001
AZ_BATCH_JOB_PREP_DIR 节点上的作业准备任务目录的完整路径。 除启动任务和作业准备任务之外的所有任务。 仅当使用作业准备任务来配置作业时才适用。 AZ_BATCH_JOB_PREP_DIR
AZ_BATCH_JOB_PREP_WORKING_DIR 节点上的作业准备任务工作目录的完整路径。 除启动任务和作业准备任务之外的所有任务。 仅当使用作业准备任务来配置作业时才适用。 AZ_BATCH_JOB_PREP_WORKING_DIR
AZ_BATCH_MASTER_NODE 运行多实例任务的主要任务的计算节点的 IP 地址和端口。 不要将此处指定的端口用于 MPI 或 NCCL 通信 - 它保留给 Azure Batch 服务。 请改用变量MASTER_PORT,可以通过命令行参数设置一个值(端口 6105 是一个很好的默认选择),或者使用 AML 所设置的值(如果 AML 提供该值)。 多实例主要和子任务。 10.0.0.4:6000
AZ_BATCH_NODE_ID 任务分配给的节点的 ID。 所有任务。 tvm-1219235766_3-20160919t172711z
AZ_BATCH_NODE_LIST 分配给多实例任务的节点列表,采用 nodeIP;nodeIP 格式。 多实例主要和子任务。 10.0.0.4;10.0.0.5
AZ_BATCH_NODE_MOUNTS_DIR 所有装载目录所在的节点级别文件系统装载位置的完整路径。 Windows 文件共享使用驱动器号,因此对于 Windows,装载驱动器是设备和驱动器的一部分。 如果用户知道已装载目录的装载权限,则包含启动任务的所有任务都可由该用户操作。 AZ_BATCH_NODE_MOUNTS_DIR
AZ_BATCH_NODE_ROOT_DIR 节点上所有 Batch 目录 的根目录的完整路径。 所有任务。 AZ_BATCH_NODE_ROOT_DIR
AZ_BATCH_NODE_SHARED_DIR 节点上 共享目录 的完整路径。 节点上执行的所有任务都具有对此目录的读/写访问权限。 在其他节点上执行的任务无权访问此目录(它不是“共享”网络目录)。 所有任务。 AZ_BATCH_NODE_SHARED_DIR
AZ_BATCH_NODE_STARTUP_DIR 节点上 启动任务目录 的完整路径。 所有任务。 AZ_BATCH_NODE_STARTUP_DIR
AZ_BATCH_POOL_ID 运行任务的池的 ID。 所有任务。 batchpool001
AZ_BATCH_TASK_DIR 节点上 任务目录 的完整路径。 此目录包含任务的 stdout.txtstderr.txt,以及 AZ_BATCH_TASK_WORKING_DIR。 所有任务。 AZ_BATCH_TASK_DIR(批处理任务目录)
AZ_BATCH_TASK_ID 当前任务的 ID。 除启动任务以外的所有任务。 task001
AZ_BATCH_TASK_SHARED_DIR 主任务和 多实例任务的每个子任务的目录路径相同。 路径存在于运行多实例任务的每个节点上,并且可供在该节点上运行的任务命令( 协调命令应用程序命令)读取/写入。 在其他节点上执行的子任务或主要任务没有对此目录的远程访问(它不是“共享”网络目录)。 多实例主要和子任务。 AZ_BATCH_TASK_SHARED_DIR
AZ_BATCH_TASK_WORKING_DIR 节点上 任务工作目录 的完整路径。 当前正在运行的任务对此目录具有读/写访问权限。 所有任务。 AZ_BATCH_TASK_WORKING_DIR
AZ_BATCH_TASK_RESERVED_EPHEMERAL_DISK_SPACE_BYTES VM 将标记为 DiskFull 的磁盘空间的当前阈值。 所有任务。 1000000
CCP_NODES 分配给 多实例任务的节点和每个节点的核心数的列表。 使用 numNodes<space>node1IP<space>node1Cores<space> 格式列出了节点和内核
node2IP<space>node2Cores<space> ...,其中节点数后面是一个或多个节点 IP 地址,以及每个节点的核心数。
多实例主要和子任务。 2 10.0.0.4 1 10.0.0.5 1

重要

环境变量路径的确切值被视为实现详细信息,可能会更改。 使用 Batch 提供的环境变量,而不是尝试构造原始路径表示形式。

下表指定AZ_BATCH_NODE_ROOT_DIR值后每个环境变量值后缀的值,有关详细信息,请参阅 AZ_BATCH_NODE_ROOT_DIR

环境变量名称 环境变量值目录后缀
AZ_BATCH_NODE_STARTUP_DIR startup
AZ_BATCH_NODE_SHARED_DIR shared
AZ_BATCH_NODE_MOUNTS_DIR fsmounts

单次运行作业作业计划之间的作业目录不同。 下表指定了单次运行作业和作业计划中作业目录的值。

作业类型 AZ_BATCH_NODE_ROOT_DIR 后的作业目录值后缀
工作 workitems\{job name}\job-1
作业计划 workitems\{job schedule name}\{job name}

下表指定作业目录后每个环境变量值后缀的值。

环境变量名称 作业目录后的环境变量值目录后缀
AZ_BATCH_TASK_WORKING_DIR {task name}\wd
AZ_BATCH_TASK_DIR {task name}
AZ_BATCH_TASK_SHARED_DIR {task name}
AZ_BATCH_JOB_PREP_DIR {job prepration task name}
准备工作目录_AZ_BATCH_JOB {job prepration task name}\wd

后续步骤