BatchTask interface
Batch は、ノードで復旧操作がトリガーされたときにタスクを再試行します。 復旧操作の例としては、異常なノードが再起動されたときや、ホスト障害が原因でコンピューティング ノードが消えた場合などです (ただし、これらに限定されません)。 回復操作による再試行は独立しており、maxTaskRetryCount に対してカウントされません。 maxTaskRetryCount が 0 の場合でも、復旧操作による内部再試行が発生する可能性があります。 このため、すべてのタスクはべき等である必要があります。 つまり、タスクは、破損やデータの重複を引き起こさずに中断および再起動されることを許容する必要があります。 実行時間の長いタスクのベスト プラクティスは、何らかの形式のチェックポイント処理を使用することです。
プロパティ
| affinity |
バッチサービスが新しいタスクを開始する計算ノードを選択するために使用できる局所性のヒントです。 |
| application |
バッチサービスがコマンドラインを実行する前にコンピュートノードにデプロイするパッケージのリストです。 アプリケーションパッケージはタスクワーキングディレクトリではなく、共有ディレクトリにダウンロード・デプロイされます。 したがって、参照されたパッケージがすでにノード上にあり、かつ最新のものであれば再ダウンロードされません。コンピュートノード上の既存のコピーが使用されます。 参照されたパッケージが削除されたりダウンロードに失敗した場合、タスクは失敗します。 |
| authentication |
Batch サービス操作の実行にタスクが使用できる認証トークンの設定。 このプロパティが設定されると、バッチサービスはタスクに認証トークンを提供し、アカウントアクセスキーを必要とせずにバッチサービス操作を認証できます。 トークンは、AZ_BATCH_AUTHENTICATION_TOKEN環境変数を介して提供されます。 タスクがトークンを使って実行できる操作は設定によって異なります。 例えば、タスクはジョブ権限を要求して他のタスクを追加したり、ジョブやジョブ内の他のタスクの状態を確認したりできます。 |
| command |
タスクのコマンドライン。 マルチインスタンスタスクの場合、コマンドラインはプライマリタスクおよびすべてのサブタスクがコーディネーションコマンドラインの実行を終えた後にプライマリタスクとして実行されます。 コマンド ラインはシェルでは実行されないため、環境変数の拡張などのシェル機能を利用することはできません。 このような機能を利用する場合は、コマンド ラインでシェルを呼び出す必要があります。たとえば、Windows では "cmd /c MyCommand" を使用し、Linux では "/bin/sh -c MyCommand" を使用します。 コマンド ラインがファイル パスを参照している場合は、相対パス (Task 作業ディレクトリに対する相対パス) を使用するか、Batch で指定された環境変数 (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables) を使用する必要があります。 |
| constraints | このタスクに適用される実行制約。 |
| container |
タスクが動作するコンテナの設定。 このタスクを実行するプールがcontainerConfiguration setを持っていれば、これも設定しなければなりません。 このタスクを実行するプールにcontainerConfigurationが設定されていなければ、この設定はできません。 これが指定されると、ノード上のAzure BatchディレクトリのルートであるAZ_BATCH_NODE_ROOT_DIRより下のすべてのディレクトリが再帰的にコンテナにマッピングされ、すべてのタスク環境変数がコンテナにマッピングされ、タスクコマンドラインがコンテナ内で実行されます。 AZ_BATCH_NODE_ROOT_DIR以外のコンテナで生成されたファイルはホストディスクに反映されない可能性があり、バッチファイルのAPIはそれらのファイルにアクセスできません。 |
| creation |
タスクの作成時間。 |
| depends |
このタスクが依存するタスク。 このタスクは、依存するすべてのタスクが正常に完了するまでスケジュールされません。 これらのタスクのいずれかが失敗し、再試行回数を使い果たした場合、そのタスクは決してスケジュールされません。 |
| display |
タスクの表示名です。 表示名は一意である必要はありません。最大長 1024 までの Unicode 文字を含めることができます。 |
| environment |
タスクの環境変数設定の一覧。 |
| e |
課題のETag。 これは不透明な文字列です。 リクエスト間でタスクが変更されたかどうかを検出するために使うことができます。 特に、タスクを更新する際にETagを通し、変更が有効になるのはその間に誰もそのタスクを修正していない場合に限られるように指定できます。 |
| execution |
タスクの実行に関する情報。 |
| exit |
タスクが完了したときにバッチサービスがどのように応答すべきか。 |
| id | ジョブ内のタスクを一意に識別する文字列です。 ID には、ハイフンやアンダースコアを含む任意の英数字を組み合わせて使用でき、64 文字を超えることはできません。 |
| last |
タスクの最後の修正時間。 |
| multi |
タスクがマルチインスタンスタスクであることを示し、そのタスクの実行方法に関する情報を含むオブジェクトです。 |
| node |
タスクが実行される計算ノードに関する情報。 |
| output |
コマンドラインを実行した後、バッチサービスがコンピュートノードからアップロードするファイルのリストです。 マルチインスタンスタスクの場合、ファイルはプライマリタスクが実行されるコンピュートノードからのみアップロードされます。 |
| previous |
課題の前の状態。 このプロパティは、タスクが初期のアクティブ状態にある場合は設定されません。 |
| previous |
タスクが前の状態に入った時点。 このプロパティは、タスクが初期のアクティブ状態にある場合は設定されません。 |
| required |
タスクが実行するために必要なスケジューリングスロットの数。 既定値は 1 です。 タスクは、ノードに十分な空きスケジューリングスロットがある場合に限り、そのノードで実行をスケジューリングできます。 マルチインスタンスタスクの場合、これは1. |
| resource |
コマンド ラインを実行する前に Batch サービスがコンピューティング ノードにダウンロードするファイルの一覧。 マルチインスタンスタスクの場合、リソースファイルはプライマリタスクが実行されるコンピュートノードにのみダウンロードされます。 リソース ファイルの一覧には最大サイズがあります。 最大サイズを超えると、要求は失敗し、応答エラー コードは RequestEntityTooLarge になります。 この場合、ResourceFiles のコレクションのサイズを小さくする必要があります。 これは、.zip ファイル、アプリケーション パッケージ、または Docker コンテナーを使用して実現できます。 |
| state | 現在のタスクの状態。 |
| state |
タスクが現在の状態に入った時点。 |
| task |
タスクのリソース使用統計。 |
| url | タスクのURLです。 |
| user |
タスクが動作するユーザーIDです。 省略すると、タスクはタスク固有の非管理者ユーザーとして動作します。 |
プロパティの詳細
affinityInfo
バッチサービスが新しいタスクを開始する計算ノードを選択するために使用できる局所性のヒントです。
affinityInfo?: BatchAffinityInfo
プロパティ値
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
containerSettings
タスクが動作するコンテナの設定。 このタスクを実行するプールがcontainerConfiguration setを持っていれば、これも設定しなければなりません。 このタスクを実行するプールにcontainerConfigurationが設定されていなければ、この設定はできません。 これが指定されると、ノード上のAzure BatchディレクトリのルートであるAZ_BATCH_NODE_ROOT_DIRより下のすべてのディレクトリが再帰的にコンテナにマッピングされ、すべてのタスク環境変数がコンテナにマッピングされ、タスクコマンドラインがコンテナ内で実行されます。 AZ_BATCH_NODE_ROOT_DIR以外のコンテナで生成されたファイルはホストディスクに反映されない可能性があり、バッチファイルのAPIはそれらのファイルにアクセスできません。
containerSettings?: BatchTaskContainerSettings
プロパティ値
creationTime
タスクの作成時間。
creationTime: Date
プロパティ値
Date
dependsOn
このタスクが依存するタスク。 このタスクは、依存するすべてのタスクが正常に完了するまでスケジュールされません。 これらのタスクのいずれかが失敗し、再試行回数を使い果たした場合、そのタスクは決してスケジュールされません。
dependsOn?: BatchTaskDependencies
プロパティ値
displayName
タスクの表示名です。 表示名は一意である必要はありません。最大長 1024 までの Unicode 文字を含めることができます。
displayName?: string
プロパティ値
string
environmentSettings
eTag
課題のETag。 これは不透明な文字列です。 リクエスト間でタスクが変更されたかどうかを検出するために使うことができます。 特に、タスクを更新する際にETagを通し、変更が有効になるのはその間に誰もそのタスクを修正していない場合に限られるように指定できます。
eTag: string
プロパティ値
string
executionInfo
exitConditions
id
ジョブ内のタスクを一意に識別する文字列です。 ID には、ハイフンやアンダースコアを含む任意の英数字を組み合わせて使用でき、64 文字を超えることはできません。
id: string
プロパティ値
string
lastModified
タスクの最後の修正時間。
lastModified: Date
プロパティ値
Date
multiInstanceSettings
タスクがマルチインスタンスタスクであることを示し、そのタスクの実行方法に関する情報を含むオブジェクトです。
multiInstanceSettings?: MultiInstanceSettings
プロパティ値
nodeInfo
outputFiles
コマンドラインを実行した後、バッチサービスがコンピュートノードからアップロードするファイルのリストです。 マルチインスタンスタスクの場合、ファイルはプライマリタスクが実行されるコンピュートノードからのみアップロードされます。
outputFiles?: OutputFile[]
プロパティ値
previousState
previousStateTransitionTime
タスクが前の状態に入った時点。 このプロパティは、タスクが初期のアクティブ状態にある場合は設定されません。
previousStateTransitionTime?: Date
プロパティ値
Date
requiredSlots
タスクが実行するために必要なスケジューリングスロットの数。 既定値は 1 です。 タスクは、ノードに十分な空きスケジューリングスロットがある場合に限り、そのノードで実行をスケジューリングできます。 マルチインスタンスタスクの場合、これは1.
requiredSlots?: number
プロパティ値
number
resourceFiles
コマンド ラインを実行する前に Batch サービスがコンピューティング ノードにダウンロードするファイルの一覧。 マルチインスタンスタスクの場合、リソースファイルはプライマリタスクが実行されるコンピュートノードにのみダウンロードされます。 リソース ファイルの一覧には最大サイズがあります。 最大サイズを超えると、要求は失敗し、応答エラー コードは RequestEntityTooLarge になります。 この場合、ResourceFiles のコレクションのサイズを小さくする必要があります。 これは、.zip ファイル、アプリケーション パッケージ、または Docker コンテナーを使用して実現できます。
resourceFiles?: ResourceFile[]
プロパティ値
state
stateTransitionTime
タスクが現在の状態に入った時点。
stateTransitionTime: Date
プロパティ値
Date
taskStatistics
url
タスクのURLです。
url: string
プロパティ値
string