Azure Batch 运行时环境变量
Azure Batch 服务在计算节点上设置以下环境变量。 可以在任务命令行中引用这些环境变量,也可在命令行运行的程序和脚本中引用它们。
要详细了解如何将环境变量和 Batch 结合使用,请参阅任务环境设置。
环境变量的可见性
这些环境变量只在任务用户(节点上执行任务的用户帐户)的上下文中可见。 在通过远程桌面协议 (RDP) 或安全外壳 (SSH) 远程连接到计算节点并列出环境变量时,你不会看到这些变量。 这是因为,用于远程连接的用户帐户与任务使用的帐户不同。
要获取环境变量的当前值,请在 Windows 计算节点上启动 cmd.exe
,或在 Linux 节点上启动 /bin/sh
:
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"
环境变量
变量名称 | 说明 | 可用性 | 示例 |
---|---|---|---|
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 | 一种身份验证令牌,用于授予对一组有限的 Batch 服务操作的访问权限。 仅当添加任务时设置 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 | 指定当前节点是否为多实例任务的主节点。 可能的值为 true 和 false 。 |
多实例主要和子任务。 | true |
AZ_BATCH_JOB_ID | 任务所属的作业的 ID。 | 除启动任务以外的所有任务。 | batchjob001 |
AZ_BATCH_JOB_PREP_DIR | 节点上的作业准备任务目录的完整路径。 | 除启动任务和作业准备任务之外的所有任务。 仅当使用作业准备任务来配置作业时才适用。 | C:\user\tasks\workitems\jobprepreleasesamplejob\job-1\jobpreparation |
AZ_BATCH_JOB_PREP_WORKING_DIR | 节点上的作业准备任务工作目录的完整路径。 | 除启动任务和作业准备任务之外的所有任务。 仅当使用作业准备任务来配置作业时才适用。 | C:\user\tasks\workitems\jobprepreleasesamplejob\job-1\jobpreparation\wd |
AZ_BATCH_MASTER_NODE | 在其上运行多实例任务的主要任务的计算节点的 IP 地址和端口。 请勿对 MPI 和 NCCL 通信使用此处指定的端口 - 它被保留用于 Azure Batch 服务。 改用变量 MASTER_PORT,方式是使用通过命令行参数传入的值设置(端口 6105 是适合的默认选项),或者使用 AML 设置的值(若已设置)。 | 多实例主要和子任务。 | 10.0.0.4:6000 |
AZ_BATCH_NODE_ID | 任务分配到的节点的 ID。 | 所有任务。 | tvm-1219235766_3-20160919t172711z |
AZ_BATCH_NODE_IS_DEDICATED | 如果为 true ,则当前节点是一个专用节点。 |
所有任务。 | true |
AZ_BATCH_NODE_LIST | 分配给多实例任务的节点列表,采用 nodeIP;nodeIP 格式。 |
多实例主要和子任务。 | 10.0.0.4;10.0.0.5 |
AZ_BATCH_NODE_MOUNTS_DIR | 所有装载目录所在的节点级别文件系统装载位置的完整路径。 Windows 文件共享使用驱动器号,因此对 Windows 来说,装载驱动器是设备和驱动器的组成部分。 | 如果用户知道已装载目录的装载权限,则包含启动任务的所有任务都可由该用户操作。 | 例如在 Ubuntu 中,位置为 /mnt/batch/tasks/fsmounts |
AZ_BATCH_NODE_ROOT_DIR | 节点上所有批处理目录的根目录的完整路径。 | 所有任务。 | C:\user\tasks |
AZ_BATCH_NODE_SHARED_DIR | 节点上共享目录的完整路径。 节点上执行的所有任务具有此目录的读取/写入权限。 在其他节点上执行的任务没有对此目录(它不是“共享”的网络目录)的远程访问权限。 | 所有任务。 | C:\user\tasks\shared |
AZ_BATCH_NODE_STARTUP_DIR | 节点上的启动任务目录的完整路径。 | 所有任务。 | C:\user\tasks\startup |
AZ_BATCH_POOL_ID | 运行任务的池的 ID。 | 所有任务。 | batchpool001 |
AZ_BATCH_TASK_DIR | 节点上的任务目录的完整路径。 此目录包含任务的 stdout.txt 和 stderr.txt ,以及 AZ_BATCH_TASK_WORKING_DIR。 |
所有任务。 | C:\user\tasks\workitems\batchjob001\job-1\task001 |
AZ_BATCH_TASK_ID | 当前任务的 ID。 | 除启动任务以外的所有任务。 | task001 |
AZ_BATCH_TASK_SHARED_DIR | 对多实例任务的主要任务和每个子任务来说相同的目录路径。 该路径存在于每一个运行多实例任务的节点上,并且在该节点上运行的任务命令(协调命令和应用程序命令)对该路径具有读取/写入访问权限。 在其他节点上执行的子任务或主要任务不具有对此目录的远程访问权限(该目录不是“共享”的网络目录)。 | 多实例主要和子任务。 | C:\user\tasks\workitems\multiinstancesamplejob\job-1\multiinstancesampletask |
AZ_BATCH_TASK_WORKING_DIR | 节点上的任务工作目录的完整路径。 当前正在运行的任务具有对此目录的读取/写入权限。 | 所有任务。 | C:\user\tasks\workitems\batchjob001\job-1\task001\wd |
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 配合使用。
- 详细了解 Batch 中的文件和目录
- 了解多实例任务。