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 中執行。 這表示這些命令行無法原生使用殼層功能,例如環境變數擴充(包括 PATH)。 若要使用這類功能,您必須在命令提示字元中調用Shell。 例如,在 Windows 計算節點或 cmd.exe Linux 節點上啟動/bin/sh:
cmd /c MyTaskApplication.exe %MY_ENV_VAR%
/bin/sh -c "MyTaskApplication $MY_ENV_VAR"
環境變數
備註
AZ_BATCH_AUTHENTICATION_TOKEN 已被取代,將於 2024 年 9 月 30 日淘汰。 如需詳細數據和替代實作的詳細資訊,請參閱 公告 。
| 變數名稱 | 說明 | 可用性 | 範例 |
|---|---|---|---|
| AZ_BATCH_ACCOUNT_NAME | 工作所屬的 Batch 帳戶名稱。 | 所有任務。 | mybatchaccount |
| AZ_BATCH_ACCOUNT_URL | Batch 帳戶的 URL。 | 所有任務。 | https://myaccount.westus.batch.azure.com |
| 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 | 工作所屬作業的標識碼。 | 除了開始任務以外的所有任務。 | 批處理作業001 |
| 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 所設定的值(如果有設定)。 | 多實例主要任務和子任務。 | 10.0.0.4:6000 |
| AZ_BATCH_NODE_ID | 指派工作的節點ID。 | 所有任務。 | TVM-1219235766_3-20160919T172711Z |
| AZ_BATCH_NODE_IS_DEDICATED | 如果 true為 ,則目前的節點是專用節點。 如果 false為 ,則為 Azure Spot 節點。 |
所有任務。 | true |
| AZ_BATCH_NODE_LIST(Azure 批處理節點列表) | 設定給 多重實例 工作的節點清單,格式為 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 | 執行作業的集區的標識碼。 | 所有任務。 | 批處理池001 |
| AZ_BATCH_TASK_DIR | 節點上 工作目錄 的完整路徑。 此目錄包含任務的stdout.txt和stderr.txt,以及AZ_BATCH_TASK_WORKING_DIR。 |
所有任務。 | AZ_BATCH_TASK_DIR |
| AZ_BATCH_TASK_ID | 當前任務的ID。 | 除了開始任務以外的所有任務。 | 任務001 |
| 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_PREP_WORKING_DIR | {job prepration task name}\wd |
後續步驟
- 瞭解如何 搭配 Batch 使用環境變數。
- 深入瞭解 Batch 中的檔案和目錄
- 瞭解 多重實例工作。