Azure Batch runtime environment variables
The Azure Batch service sets the following environment variables on compute nodes. You can reference these environment variables in task command lines, and in the programs and scripts run by the command lines.
For more information about using environment variables with Batch, see Environment settings for tasks.
Environment variable visibility
These environment variables are visible only in the context of the task user, which is the user account on the node under which a task is executed. You won't see these variables when connecting remotely to a compute node via Remote Desktop Protocol (RDP) or Secure Shell (SSH) and listing environment variables. This is because the user account that is used for remote connection is not the same as the account that is used by the task.
To get the current value of an environment variable, launch cmd.exe
on a Windows compute node or /bin/sh
on a Linux node:
cmd /c set <ENV_VARIABLE_NAME>
/bin/sh -c "printenv <ENV_VARIABLE_NAME>"
Command-line expansion of environment variables
The command lines executed by tasks on compute nodes don't run under a shell. This means that these command lines can't natively use shell features such as environment variable expansion (including the PATH
). To use such features, you must invoke the shell in the command line. For example, launch cmd.exe
on Windows compute nodes or /bin/sh
on Linux nodes:
cmd /c MyTaskApplication.exe %MY_ENV_VAR%
/bin/sh -c "MyTaskApplication $MY_ENV_VAR"
Environment variables
Variable name | Description | Availability | Example |
---|---|---|---|
AZ_BATCH_ACCOUNT_NAME | The name of the Batch account that the task belongs to. | All tasks. | mybatchaccount |
AZ_BATCH_ACCOUNT_URL | The URL of the Batch account. | All tasks. | https://myaccount.chinanorth.batch.chinacloudapi.cn |
AZ_BATCH_APP_PACKAGE | A prefix of all the app package environment variables. For example, if Application "FOO" version "1" is installed onto a pool, the environment variable is AZ_BATCH_APP_PACKAGE_FOO_1 (on Linux) or AZ_BATCH_APP_PACKAGE_FOO#1 (on Windows). AZ_BATCH_APP_PACKAGE_FOO_1 points to the location that the package was downloaded (a folder). When using the default version of the app package, use the AZ_BATCH_APP_PACKAGE environment variable without the version numbers. If in Linux, and the application package name is "Agent-linux-x64" and the version is "1.1.46.0, the environment name is actually: AZ_BATCH_APP_PACKAGE_agent_linux_x64_1_1_46_0, using underscores and lower case. For more information, see Execute the installed applications for more details. | Any task with an associated app package. Also available for all tasks if the node itself has application packages. | AZ_BATCH_APP_PACKAGE_FOO_1 (Linux) or AZ_BATCH_APP_PACKAGE_FOO#1 (Windows) |
AZ_BATCH_AUTHENTICATION_TOKEN | An authentication token that grants access to a limited set of Batch service operations. This environment variable is only present if the authenticationTokenSettings are set when the task is added. The token value is used in the Batch APIs as credentials to create a Batch client, such as in the BatchClient.Open() .NET API. The token doesn't support private networking. | All tasks. | OAuth2 access token |
AZ_BATCH_CERTIFICATES_DIR | A directory within the task working directory in which certificates are stored for Linux compute nodes. This environment variable does not apply to Windows compute nodes. | All tasks. | /mnt/batch/tasks/workitems/batchjob001/job-1/task001/certs |
AZ_BATCH_HOST_LIST | The list of nodes that are allocated to a multi-instance task in the format nodeIP,nodeIP . |
Multi-instance primary and subtasks. | 10.0.0.4,10.0.0.5 |
AZ_BATCH_IS_CURRENT_NODE_MASTER | Specifies whether the current node is the master node for a multi-instance task. Possible values are true and false . |
Multi-instance primary and subtasks. | true |
AZ_BATCH_JOB_ID | The ID of the job that the task belongs to. | All tasks except start task. | batchjob001 |
AZ_BATCH_JOB_PREP_DIR | The full path of the job preparation task directory on the node. | All tasks except start task and job preparation task. Only available if the job is configured with a job preparation task. | C:\user\tasks\workitems\jobprepreleasesamplejob\job-1\jobpreparation |
AZ_BATCH_JOB_PREP_WORKING_DIR | The full path of the job preparation task working directory on the node. | All tasks except start task and job preparation task. Only available if the job is configured with a job preparation task. | C:\user\tasks\workitems\jobprepreleasesamplejob\job-1\jobpreparation\wd |
AZ_BATCH_MASTER_NODE | The IP address and port of the compute node on which the primary task of a multi-instance task runs. Do not use the port specified here for MPI or NCCL communication - it is reserved for the Azure Batch service. Use the variable MASTER_PORT instead, either by setting it with a value passed in through command line argument (port 6105 is a good default choice), or using the value AML sets if it does so. | Multi-instance primary and subtasks. | 10.0.0.4:6000 |
AZ_BATCH_NODE_ID | The ID of the node that the task is assigned to. | All tasks. | tvm-1219235766_3-20160919t172711z |
AZ_BATCH_NODE_IS_DEDICATED | If true , the current node is a dedicated node. |
All tasks. | true |
AZ_BATCH_NODE_LIST | The list of nodes that are allocated to a multi-instance task in the format nodeIP;nodeIP . |
Multi-instance primary and subtasks. | 10.0.0.4;10.0.0.5 |
AZ_BATCH_NODE_MOUNTS_DIR | The full path of the node level file system mount location where all mount directories reside. Windows file shares use a drive letter, so for Windows, the mount drive is part of devices and drives. | All tasks including start task have access to the user, given the user is aware of the mount permissions for the mounted directory. | In Ubuntu, for example, the location is: /mnt/batch/tasks/fsmounts |
AZ_BATCH_NODE_ROOT_DIR | The full path of the root of all Batch directories on the node. | All tasks. | C:\user\tasks |
AZ_BATCH_NODE_SHARED_DIR | The full path of the shared directory on the node. All tasks that execute on a node have read/write access to this directory. Tasks that execute on other nodes do not have remote access to this directory (it is not a "shared" network directory). | All tasks. | C:\user\tasks\shared |
AZ_BATCH_NODE_STARTUP_DIR | The full path of the start task directory on the node. | All tasks. | C:\user\tasks\startup |
AZ_BATCH_POOL_ID | The ID of the pool that the task is running on. | All tasks. | batchpool001 |
AZ_BATCH_TASK_DIR | The full path of the task directory on the node. This directory contains the stdout.txt and stderr.txt for the task, and the AZ_BATCH_TASK_WORKING_DIR. |
All tasks. | C:\user\tasks\workitems\batchjob001\job-1\task001 |
AZ_BATCH_TASK_ID | The ID of the current task. | All tasks except start task. | task001 |
AZ_BATCH_TASK_SHARED_DIR | A directory path that is identical for the primary task and every subtask of a multi-instance task. The path exists on every node on which the multi-instance task runs, and is read/write accessible to the task commands running on that node (both the coordination command and the application command. Subtasks or a primary task that execute on other nodes do not have remote access to this directory (it is not a "shared" network directory). | Multi-instance primary and subtasks. | C:\user\tasks\workitems\multiinstancesamplejob\job-1\multiinstancesampletask |
AZ_BATCH_TASK_WORKING_DIR | The full path of the task working directory on the node. The currently running task has read/write access to this directory. | All tasks. | C:\user\tasks\workitems\batchjob001\job-1\task001\wd |
AZ_BATCH_TASK_RESERVED_EPHEMERAL_DISK_SPACE_BYTES | The current threshold for disk space upon which the VM will be marked as DiskFull . |
All tasks. | 1000000 |
CCP_NODES | The list of nodes and number of cores per node that are allocated to a multi-instance task. Nodes and cores are listed in the format numNodes<space>node1IP<space>node1Cores<space> node2IP<space>node2Cores<space> ... , where the number of nodes is followed by one or more node IP addresses and the number of cores for each. |
Multi-instance primary and subtasks. | 2 10.0.0.4 1 10.0.0.5 1 |
Next steps
- Learn how to use environment variables with Batch.
- Learn more about files and directories in Batch
- Learn about multi-instance-tasks.