次の方法で共有


BatchJobPreparationTask interface

特定のコンピューティング ノード上のジョブのタスクの前に実行するジョブ準備タスク。 ジョブの準備を使用して、ジョブのタスクを実行するノードを準備できます。 ジョブの準備で一般的に実行されるアクティビティには、ジョブ内のすべてのタスクで使用される一般的なリソース ファイルのダウンロードが含まれます。 ジョブ準備タスクでは、これらの共通リソース ファイルをノード上の共有の場所にダウンロードできます。 (AZ_BATCH_NODE_ROOT_DIR\shared)、またはノードでローカル サービスを開始して、そのジョブのすべてのタスクがノードと通信できるようにします。 ジョブ準備タスクが失敗した場合 (つまり、終了コード 0 で終了する前に再試行回数を使い果たす)、Batch はノードでこのジョブのタスクを実行しません。 コンピューティング ノードは、再イメージ化されるまで、このジョブのタスクを実行できません。 コンピューティング ノードはアクティブなままであり、他のジョブに使用できます。 ジョブ準備タスクは、同じノードで複数回実行できます。 そのため、再実行を処理するジョブ準備タスクを記述する必要があります。 ノードが再起動された場合、再実行OnNodeRebootAfterSuccess が true の場合、またはジョブ準備タスクが以前に完了しなかった場合は、ジョブの他のタスクをスケジュールする前に、コンピューティング ノードでジョブ準備タスクが再度実行されます。 ノードが再イメージ化されると、ジョブのタスクをスケジュールする前に、ジョブ準備タスクが再度実行されます。 Batch は、ノードで復旧操作がトリガーされたときにタスクを再試行します。 復旧操作の例としては、異常なノードが再起動されたときや、ホスト障害が原因でコンピューティング ノードが消えた場合などです (ただし、これらに限定されません)。 回復操作による再試行は独立しており、maxTaskRetryCount に対してカウントされません。 maxTaskRetryCount が 0 の場合でも、復旧操作による内部再試行が発生する可能性があります。 このため、すべてのタスクはべき等である必要があります。 つまり、タスクは、破損やデータの重複を引き起こさずに中断および再起動されることを許容する必要があります。 実行時間の長いタスクのベスト プラクティスは、何らかの形式のチェックポイント処理を使用することです。

プロパティ

commandLine

ジョブ準備タスクのコマンドライン。 コマンド ラインはシェルでは実行されないため、環境変数の拡張などのシェル機能を利用することはできません。 このような機能を利用する場合は、コマンド ラインでシェルを呼び出す必要があります。たとえば、Windows では "cmd /c MyCommand" を使用し、Linux では "/bin/sh -c MyCommand" を使用します。 コマンド ラインがファイル パスを参照している場合は、相対パス (Task 作業ディレクトリに対する相対パス) を使用するか、Batch で指定された環境変数 (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables) を使用する必要があります。

constraints

ジョブ準備タスクに適用される制約条件。

containerSettings

ジョブ準備タスクが実行されるコンテナの設定。 これが指定されると、ノード上のAzure BatchディレクトリのルートであるAZ_BATCH_NODE_ROOT_DIRより下のすべてのディレクトリが再帰的にコンテナにマッピングされ、すべてのタスク環境変数がコンテナにマッピングされ、タスクコマンドラインがコンテナ内で実行されます。 AZ_BATCH_NODE_ROOT_DIR以外のコンテナで生成されたファイルはホストディスクに反映されない可能性があり、バッチファイルのAPIはそれらのファイルにアクセスできません。

environmentSettings

ジョブ準備タスクの環境変数設定の一覧です。

id

ジョブ内のジョブ準備タスクを一意に識別する文字列です。 IDはハイフンやアンダースコアを含む英数字の任意の組み合わせを含み、64文字を超えてはなりません。 このプロパティを指定しない場合、バッチサービスはデフォルトの値として「ジョブ準備」を割り当てます。 ジョブ内の他のタスクはジョブ準備タスクと同じIDを持つことはできません。 同じIDでタスクを送信しようとすると、バッチサービスはエラーコードTaskIdSameAsJobPreparationTaskでリクエストを拒否します。REST APIを直接呼び出す場合、HTTPステータスコードは409(Conflict)です。

rerunOnNodeRebootAfterSuccess

Compute Nodeが再起動した後にバッチサービスがジョブ準備タスクを再実行すべきかどうか。 ジョブ準備タスクは、計算ノードが再イメージ化された場合や、ジョブ準備タスクが完了しなかった場合(例:タスク実行中に再起動が発生した場合)には常に再実行されます。 したがって、ジョブ準備タスクは必ず冪等性を持ち、複数回実行した場合に正しく動作するように書くべきです。 既定値は true です。

resourceFiles

コマンド ラインを実行する前に Batch サービスがコンピューティング ノードにダウンロードするファイルの一覧。 この要素の下に一覧表示されるファイルは、タスクの作業ディレクトリにあります。 リソース ファイルの一覧には最大サイズがあります。 最大サイズを超えると、要求は失敗し、応答エラー コードは RequestEntityTooLarge になります。 この場合、ResourceFiles のコレクションのサイズを小さくする必要があります。 これは、.zip ファイル、アプリケーション パッケージ、または Docker コンテナーを使用して実現できます。

userIdentity

ジョブ準備タスクが実行されるユーザーIDです。 省略すると、タスクはWindowsコンピュートノード上のタスク固有の非管理者ユーザーとして、またはLinuxのコンピュートノードのプール固有の非管理者ユーザーとして実行されます。

waitForSuccess

バッチサービスはジョブ準備タスクが成功裏に完了するまで待ってから、他のジョブのタスクをコンピュートノード上でスケジューリングすべきかどうか。 ジョブ準備タスクが終了すると、終了コード0で成功裏に完了したとみなされます。 もし真でジョブ準備タスクがノード上で失敗した場合、バッチサービスは制約要素で指定された最大リトライ回数までジョブ準備タスクを再試行します。 すべての再トライしてもタスクが成功していない場合、バッチサービスはジョブのタスクをノードにスケジューリングしません。 ノードは引き続きアクティブであり、他のジョブのタスクを実行する資格があります。 もし誤りの場合、バッチサービスはジョブ準備タスクの完了を待ちません。 この場合、ジョブの他のタスクはジョブ準備タスクが実行中である間にコンピュートノード上で実行を開始できます。ジョブ準備タスクが失敗しても、新しいタスクはコンピュートノード上でスケジューリングされ続けます。 既定値は true です。

プロパティの詳細

commandLine

ジョブ準備タスクのコマンドライン。 コマンド ラインはシェルでは実行されないため、環境変数の拡張などのシェル機能を利用することはできません。 このような機能を利用する場合は、コマンド ラインでシェルを呼び出す必要があります。たとえば、Windows では "cmd /c MyCommand" を使用し、Linux では "/bin/sh -c MyCommand" を使用します。 コマンド ラインがファイル パスを参照している場合は、相対パス (Task 作業ディレクトリに対する相対パス) を使用するか、Batch で指定された環境変数 (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables) を使用する必要があります。

commandLine: string

プロパティ値

string

constraints

ジョブ準備タスクに適用される制約条件。

constraints?: BatchTaskConstraints

プロパティ値

containerSettings

ジョブ準備タスクが実行されるコンテナの設定。 これが指定されると、ノード上のAzure BatchディレクトリのルートであるAZ_BATCH_NODE_ROOT_DIRより下のすべてのディレクトリが再帰的にコンテナにマッピングされ、すべてのタスク環境変数がコンテナにマッピングされ、タスクコマンドラインがコンテナ内で実行されます。 AZ_BATCH_NODE_ROOT_DIR以外のコンテナで生成されたファイルはホストディスクに反映されない可能性があり、バッチファイルのAPIはそれらのファイルにアクセスできません。

containerSettings?: BatchTaskContainerSettings

プロパティ値

environmentSettings

ジョブ準備タスクの環境変数設定の一覧です。

environmentSettings?: EnvironmentSetting[]

プロパティ値

id

ジョブ内のジョブ準備タスクを一意に識別する文字列です。 IDはハイフンやアンダースコアを含む英数字の任意の組み合わせを含み、64文字を超えてはなりません。 このプロパティを指定しない場合、バッチサービスはデフォルトの値として「ジョブ準備」を割り当てます。 ジョブ内の他のタスクはジョブ準備タスクと同じIDを持つことはできません。 同じIDでタスクを送信しようとすると、バッチサービスはエラーコードTaskIdSameAsJobPreparationTaskでリクエストを拒否します。REST APIを直接呼び出す場合、HTTPステータスコードは409(Conflict)です。

id?: string

プロパティ値

string

rerunOnNodeRebootAfterSuccess

Compute Nodeが再起動した後にバッチサービスがジョブ準備タスクを再実行すべきかどうか。 ジョブ準備タスクは、計算ノードが再イメージ化された場合や、ジョブ準備タスクが完了しなかった場合(例:タスク実行中に再起動が発生した場合)には常に再実行されます。 したがって、ジョブ準備タスクは必ず冪等性を持ち、複数回実行した場合に正しく動作するように書くべきです。 既定値は true です。

rerunOnNodeRebootAfterSuccess?: boolean

プロパティ値

boolean

resourceFiles

コマンド ラインを実行する前に Batch サービスがコンピューティング ノードにダウンロードするファイルの一覧。 この要素の下に一覧表示されるファイルは、タスクの作業ディレクトリにあります。 リソース ファイルの一覧には最大サイズがあります。 最大サイズを超えると、要求は失敗し、応答エラー コードは RequestEntityTooLarge になります。 この場合、ResourceFiles のコレクションのサイズを小さくする必要があります。 これは、.zip ファイル、アプリケーション パッケージ、または Docker コンテナーを使用して実現できます。

resourceFiles?: ResourceFile[]

プロパティ値

userIdentity

ジョブ準備タスクが実行されるユーザーIDです。 省略すると、タスクはWindowsコンピュートノード上のタスク固有の非管理者ユーザーとして、またはLinuxのコンピュートノードのプール固有の非管理者ユーザーとして実行されます。

userIdentity?: UserIdentity

プロパティ値

waitForSuccess

バッチサービスはジョブ準備タスクが成功裏に完了するまで待ってから、他のジョブのタスクをコンピュートノード上でスケジューリングすべきかどうか。 ジョブ準備タスクが終了すると、終了コード0で成功裏に完了したとみなされます。 もし真でジョブ準備タスクがノード上で失敗した場合、バッチサービスは制約要素で指定された最大リトライ回数までジョブ準備タスクを再試行します。 すべての再トライしてもタスクが成功していない場合、バッチサービスはジョブのタスクをノードにスケジューリングしません。 ノードは引き続きアクティブであり、他のジョブのタスクを実行する資格があります。 もし誤りの場合、バッチサービスはジョブ準備タスクの完了を待ちません。 この場合、ジョブの他のタスクはジョブ準備タスクが実行中である間にコンピュートノード上で実行を開始できます。ジョブ準備タスクが失敗しても、新しいタスクはコンピュートノード上でスケジューリングされ続けます。 既定値は true です。

waitForSuccess?: boolean

プロパティ値

boolean