次の方法で共有


BatchJobManagerTask interface

ジョブ マネージャー タスクの詳細を指定します。 ジョブ マネージャー タスクは、ジョブの作成時に自動的に開始されます。 Batch サービスは、ジョブ内の他のタスクの前にジョブ マネージャー タスクのスケジュールを設定しようとします。 プールを縮小すると、Batch サービスは、ジョブ マネージャー タスクが実行されているノードを可能な限り長く保持しようとします (つまり、"通常" タスクを実行しているコンピューティング ノードは、ジョブ マネージャー タスクを実行するコンピューティング ノードの前に削除されます)。 ジョブ マネージャー タスクが失敗し、再起動する必要がある場合、システムは優先度が最も高いタスクをスケジュールしようとします。 使用可能なアイドル状態のコンピューティング ノードがない場合、システムは、ジョブ マネージャー タスクを再起動するための空き時間を確保するために、プール内の実行中のタスクの 1 つを終了し、キューに戻すことができます。 あるジョブのジョブ マネージャー タスクは、他のジョブのタスクよりも優先されないことに注意してください。 ジョブ間では、ジョブ レベルの優先順位のみが確認されます。 たとえば、優先度 0 のジョブ マネージャーを再起動する必要がある場合、優先度 1 のジョブのタスクは置き換えされません。 Batch は、ノードで復旧操作がトリガーされたときにタスクを再試行します。 復旧操作の例としては、異常なノードが再起動されたときや、ホスト障害が原因でコンピューティング ノードが消えた場合などです (ただし、これらに限定されません)。 回復操作による再試行は独立しており、maxTaskRetryCount に対してカウントされません。 maxTaskRetryCount が 0 の場合でも、復旧操作による内部再試行が発生する可能性があります。 このため、すべてのタスクはべき等である必要があります。 つまり、タスクは、破損やデータの重複を引き起こさずに中断および再起動されることを許容する必要があります。 実行時間の長いタスクのベスト プラクティスは、何らかの形式のチェックポイント処理を使用することです。

プロパティ

allowLowPriorityNode

ジョブマネージャータスクがスポット/低優先度のコンピュートノード上で実行できるかどうか。 既定値は true です。

applicationPackageReferences

バッチサービスがコマンドラインを実行する前にコンピュートノードにデプロイするアプリケーションパッケージのリストです。アプリケーションパッケージはタスクワーキングディレクトリではなく、共有ディレクトリにダウンロード・デプロイされます。 したがって、参照されたアプリケーションパッケージがすでにコンピュートノード上にあり、かつ最新のものであれば再ダウンロードされません。コンピュートノード上の既存のコピーが使用されます。 参照されたアプリケーションパッケージがインストールできない場合、例えばパッケージが削除されたりダウンロードに失敗した場合、タスクは失敗します。

authenticationTokenSettings

Batch サービス操作の実行にタスクが使用できる認証トークンの設定。 このプロパティが設定されると、バッチサービスはタスクに認証トークンを提供し、アカウントアクセスキーを必要とせずにバッチサービス操作を認証できます。 トークンは、AZ_BATCH_AUTHENTICATION_TOKEN環境変数を介して提供されます。 タスクがトークンを使って実行できる操作は設定によって異なります。 例えば、タスクはジョブ権限を要求して他のタスクを追加したり、ジョブやジョブ内の他のタスクの状態を確認したりできます。

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

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

displayName

ジョブマネージャータスクの表示名。 一意である必要はなく、最大1024までの任意のUnicode文字を含めます。

environmentSettings

ジョブマネージャータスクの環境変数設定の一覧です。

id

ジョブ内のジョブマネージャータスクを一意に識別する文字列です。 IDはハイフンやアンダースコアを含む英数字の任意の組み合わせを含み、64文字を超えてはなりません。

killJobOnCompletion

ジョブマネージャータスクの完了が全体のジョブ完了を意味するかどうか。 もしこれが正しければ、ジョブマネージャータスクが完了するとバッチサービスはジョブを完了としてマークします。 もしこの時点でまだ実行中のタスク(ジョブリリース以外)があれば、それらのタスクは終了します。 もし誤りの場合、ジョブマネージャータスクの完了はジョブステータスに影響を与えません。 この場合、onAllTasksComplete属性を使ってジョブを終了するか、クライアントやユーザーに明示的にジョブを終了させるべきです。 例えば、ジョブマネージャーがタスクのセットを作成しても、その後実行に関与しない場合が挙げられます。 既定値は true です。 もしonAllTasksCompleteとonTaskFailure属性を使ってジョブライフタイムを制御し、ジョブマネージャータスクはジョブのタスク作成のみに使っている場合(進捗監視のためではありません)、killJobOnCompletionをfalseに設定することが重要です。

outputFiles

コマンドラインを実行した後、バッチサービスがコンピュートノードからアップロードするファイルのリストです。 マルチインスタンスタスクの場合、ファイルはプライマリタスクが実行されるコンピュートノードからのみアップロードされます。

requiredSlots

タスクが実行するために必要なスケジューリングスロットの数。 既定値は 1 です。 タスクは、ノードに十分な空きスケジューリングスロットがある場合に限り、そのノードで実行をスケジューリングできます。 マルチインスタンスタスクの場合、このプロパティはサポートされておらず、指定してはいけません。

resourceFiles

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

runExclusive

ジョブマネージャータスクが実行されるコンピュートノードの排他使用を必要とするかどうか。 もしそうであれば、ジョブマネージャーが動作している間、他のタスクは同じノード上で実行されません。 もし誤りの場合、他のタスクはコンピュートノード上のジョブマネージャーと同時に実行されることがあります。 ジョブマネージャータスクは通常、計算ノードの同時タスク制限にカウントされるため、計算ノードが複数の同時タスクを許可している場合にのみ関係します。 既定値は true です。

userIdentity

ジョブマネージャータスクが実行されるユーザーIDです。 省略すると、タスクはタスク固有の非管理者ユーザーとして動作します。

プロパティの詳細

allowLowPriorityNode

ジョブマネージャータスクがスポット/低優先度のコンピュートノード上で実行できるかどうか。 既定値は true です。

allowLowPriorityNode?: boolean

プロパティ値

boolean

applicationPackageReferences

バッチサービスがコマンドラインを実行する前にコンピュートノードにデプロイするアプリケーションパッケージのリストです。アプリケーションパッケージはタスクワーキングディレクトリではなく、共有ディレクトリにダウンロード・デプロイされます。 したがって、参照されたアプリケーションパッケージがすでにコンピュートノード上にあり、かつ最新のものであれば再ダウンロードされません。コンピュートノード上の既存のコピーが使用されます。 参照されたアプリケーションパッケージがインストールできない場合、例えばパッケージが削除されたりダウンロードに失敗した場合、タスクは失敗します。

applicationPackageReferences?: BatchApplicationPackageReference[]

プロパティ値

authenticationTokenSettings

Batch サービス操作の実行にタスクが使用できる認証トークンの設定。 このプロパティが設定されると、バッチサービスはタスクに認証トークンを提供し、アカウントアクセスキーを必要とせずにバッチサービス操作を認証できます。 トークンは、AZ_BATCH_AUTHENTICATION_TOKEN環境変数を介して提供されます。 タスクがトークンを使って実行できる操作は設定によって異なります。 例えば、タスクはジョブ権限を要求して他のタスクを追加したり、ジョブやジョブ内の他のタスクの状態を確認したりできます。

authenticationTokenSettings?: AuthenticationTokenSettings

プロパティ値

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

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

containerSettings?: BatchTaskContainerSettings

プロパティ値

displayName

ジョブマネージャータスクの表示名。 一意である必要はなく、最大1024までの任意のUnicode文字を含めます。

displayName?: string

プロパティ値

string

environmentSettings

ジョブマネージャータスクの環境変数設定の一覧です。

environmentSettings?: EnvironmentSetting[]

プロパティ値

id

ジョブ内のジョブマネージャータスクを一意に識別する文字列です。 IDはハイフンやアンダースコアを含む英数字の任意の組み合わせを含み、64文字を超えてはなりません。

id: string

プロパティ値

string

killJobOnCompletion

ジョブマネージャータスクの完了が全体のジョブ完了を意味するかどうか。 もしこれが正しければ、ジョブマネージャータスクが完了するとバッチサービスはジョブを完了としてマークします。 もしこの時点でまだ実行中のタスク(ジョブリリース以外)があれば、それらのタスクは終了します。 もし誤りの場合、ジョブマネージャータスクの完了はジョブステータスに影響を与えません。 この場合、onAllTasksComplete属性を使ってジョブを終了するか、クライアントやユーザーに明示的にジョブを終了させるべきです。 例えば、ジョブマネージャーがタスクのセットを作成しても、その後実行に関与しない場合が挙げられます。 既定値は true です。 もしonAllTasksCompleteとonTaskFailure属性を使ってジョブライフタイムを制御し、ジョブマネージャータスクはジョブのタスク作成のみに使っている場合(進捗監視のためではありません)、killJobOnCompletionをfalseに設定することが重要です。

killJobOnCompletion?: boolean

プロパティ値

boolean

outputFiles

コマンドラインを実行した後、バッチサービスがコンピュートノードからアップロードするファイルのリストです。 マルチインスタンスタスクの場合、ファイルはプライマリタスクが実行されるコンピュートノードからのみアップロードされます。

outputFiles?: OutputFile[]

プロパティ値

requiredSlots

タスクが実行するために必要なスケジューリングスロットの数。 既定値は 1 です。 タスクは、ノードに十分な空きスケジューリングスロットがある場合に限り、そのノードで実行をスケジューリングできます。 マルチインスタンスタスクの場合、このプロパティはサポートされておらず、指定してはいけません。

requiredSlots?: number

プロパティ値

number

resourceFiles

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

resourceFiles?: ResourceFile[]

プロパティ値

runExclusive

ジョブマネージャータスクが実行されるコンピュートノードの排他使用を必要とするかどうか。 もしそうであれば、ジョブマネージャーが動作している間、他のタスクは同じノード上で実行されません。 もし誤りの場合、他のタスクはコンピュートノード上のジョブマネージャーと同時に実行されることがあります。 ジョブマネージャータスクは通常、計算ノードの同時タスク制限にカウントされるため、計算ノードが複数の同時タスクを許可している場合にのみ関係します。 既定値は true です。

runExclusive?: boolean

プロパティ値

boolean

userIdentity

ジョブマネージャータスクが実行されるユーザーIDです。 省略すると、タスクはタスク固有の非管理者ユーザーとして動作します。

userIdentity?: UserIdentity

プロパティ値