Azure Batch ランタイム環境変数
Azure Batch サービスは、コンピューティング ノードで以下の環境変数を設定します。 これらの環境変数は、タスク コマンドラインと、コマンド ラインにより実行されるプログラムとスクリプトで参照できます。
Batch での環境変数の使用に関する詳細については、「タスクの環境設定」を参照してください。
環境変数の可視性
これらの環境変数は、タスク ユーザー (タスクが実行されるノードのユーザー アカウント) のコンテキストだけで表示されます。 リモート デスクトップ プロトコル (RDP) または Secure Shell (SSH) を介してコンピューター ノードにリモート接続し、環境変数を一覧表示する場合、これらの変数は表示されません。 これは、リモート接続に使用されるユーザー アカウントが、タスクで使用されるアカウントと異なることが原因です。
環境変数の現在の値を取得するには、Windows コンピューティング ノード上でcmd.exe
を、またはLinux ノード上で/bin/sh
を起動します。
cmd /c set <ENV_VARIABLE_NAME>
/bin/sh -c "printenv <ENV_VARIABLE_NAME>"
環境変数のコマンドライン拡張
コンピューティング ノード上のタスクによって実行されるコマンドラインは、シェルの下では実行されません。 つまり、これらのコマンド ラインが環境変数の拡張 (PATH
を含む) などのシェル機能をネイティブで使用できません。 このような機能を使用するには、コマンドラインでシェルを呼び出す必要があります。 たとえば、cmd.exe
を Windows コンピューティング ノードで起動するか、または /bin/sh
をLinux ノードで起動します。
cmd /c MyTaskApplication.exe %MY_ENV_VAR%
/bin/sh -c "MyTaskApplication $MY_ENV_VAR"
環境変数
Note
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 が設定された場合のみに存在します。 このトークン値は、BatchClient.Open() .NET API などの Batch API 内で、Batch クライアントを作成するための資格署名として使用されます。 トークンはプライベート ネットワークをサポートしていません。 | すべてのタスク。 | 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 の場合、現在のノードが専用ノードです。 false の場合は、Azure スポット ノード です。 |
すべてのタスク。 | 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 | ノード上のすべての Batch ディレクトリのルートの完全パス。 | すべてのタスク。 | 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> ... 、ノードの番号の後に 1 つまたは複数のノード IP アドレスと、それぞれのコア数が続きます。 |
マルチ インスタンスのプライマリおよびサブタスク。 | 2 10.0.0.4 1 10.0.0.5 1 |
次のステップ
- Batch と共に環境変数を使用する方法について説明します。
- Batch でのファイルとディレクトリについて説明します。
- マルチインスタンスタスクについて説明します。