TaskAddParameter interface
Batch は、ノードで復旧操作がトリガーされたときにタスクを再試行します。 復旧操作の例としては、異常なノードが再起動されたときや、ホスト障害が原因でコンピューティング ノードが消えた場合などです (ただし、これらに限定されません)。 回復操作による再試行は独立しており、maxTaskRetryCount に対してカウントされません。 maxTaskRetryCount が 0 の場合でも、復旧操作による内部再試行が発生する可能性があります。 このため、すべてのタスクはべき等である必要があります。 つまり、タスクは、破損やデータの重複を引き起こさずに中断および再起動されることを許容する必要があります。 実行時間の長いタスクのベスト プラクティスは、何らかの形式のチェックポイント処理を使用することです。
プロパティ
| affinity |
Batch サービスが新しいタスクを開始するコンピューティング ノードを選択するために使用できるローカリティ ヒント。 |
| application |
コマンド ラインを実行する前に Batch サービスがコンピューティング ノードにデプロイするパッケージの一覧。 アプリケーション パッケージは、タスク作業ディレクトリではなく、共有ディレクトリにダウンロードおよびデプロイされます。 したがって、参照されているパッケージが既にノード上にあり、最新の状態である場合、再ダウンロードされません。コンピューティング ノード上の既存のコピーが使用されます。 たとえば、パッケージが削除された、またはダウンロードに失敗したために、参照先のパッケージをインストールできない場合、タスクは失敗します。 |
| authentication |
Batch サービス操作の実行にタスクが使用できる認証トークンの設定。 このプロパティが設定されている場合、Batch サービスは、アカウント アクセス キーを必要とせずに Batch サービス操作を認証するために使用できる認証トークンを Task に提供します。 トークンは、AZ_BATCH_AUTHENTICATION_TOKEN環境変数を介して提供されます。 タスクがトークンを使用して実行できる操作は、設定によって異なります。 たとえば、タスクは、ジョブに他のタスクを追加したり、ジョブまたはジョブの下の他のタスクの状態を確認したりするために、ジョブのアクセス許可を要求できます。 |
| command |
タスクのコマンド ライン。 複数インスタンスのタスクの場合、プライマリ タスクとすべてのサブタスクが調整コマンド ラインの実行を完了した後、コマンド ラインがプライマリ タスクとして実行されます。 コマンド ラインはシェルでは実行されないため、環境変数の拡張などのシェル機能を利用することはできません。 このような機能を利用する場合は、コマンド ラインでシェルを呼び出す必要があります。たとえば、Windows では "cmd /c MyCommand" を使用し、Linux では "/bin/sh -c MyCommand" を使用します。 コマンド ラインがファイル パスを参照している場合は、相対パス (Task 作業ディレクトリに対する相対パス) を使用するか、Batch で指定された環境変数 (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables) を使用する必要があります。 |
| constraints | このタスクに適用される実行制約。 制約を指定しない場合、maxTaskRetryCount はジョブに指定された maxTaskRetryCount、maxWallClockTime は無限、retentionTime は 7 日間です。 |
| container |
タスクを実行するコンテナーの設定。 このタスクを実行するプールに containerConfiguration が設定されている場合は、これも設定する必要があります。 このタスクを実行するプールに containerConfiguration が設定されていない場合は、これを設定しないでください。 これを指定すると、AZ_BATCH_NODE_ROOT_DIRの下にあるすべてのディレクトリ (ノード上の Azure Batch ディレクトリのルート) がコンテナーに再帰的にマップされ、すべての Task 環境変数がコンテナーにマップされ、タスク コマンド ラインがコンテナーで実行されます。 AZ_BATCH_NODE_ROOT_DIR外のコンテナーで生成されたファイルはホスト ディスクに反映されない可能性があります。つまり、Batch ファイル API はそれらのファイルにアクセスできません。 |
| depends |
このタスクが依存するタスク。 このタスクは、依存するすべてのタスクが正常に完了するまでスケジュールされません。 これらのタスクのいずれかが失敗し、再試行回数が不足した場合、このタスクはスケジュールされません。 ジョブに usesTaskDependencies が true に設定されておらず、この要素が存在する場合、要求はエラー コード TaskDependenciesNotSpecifiedOnJob で失敗します。 |
| display |
タスクの表示名。 表示名は一意である必要はありません。最大長 1024 までの Unicode 文字を含めることができます。 |
| environment |
タスクの環境変数設定の一覧。 |
| exit |
タスクが完了したときに Batch サービスが応答する方法。 |
| id | ジョブ内のタスクを一意に識別する文字列。 ID には、ハイフンやアンダースコアを含む任意の英数字を組み合わせて使用でき、64 文字を超えることはできません。 ID は大文字と小文字が区別されず、大文字と小文字が区別されません (つまり、ジョブ内に大文字と小文字のみが異なる 2 つの ID がない可能性があります)。 |
| multi |
Task がマルチインスタンス タスクであることを示し、マルチインスタンス タスクの実行方法に関する情報を含むオブジェクト。 |
| output |
コマンド ラインの実行後に Batch サービスがコンピューティング ノードからアップロードするファイルの一覧。 複数インスタンスのタスクの場合、ファイルはプライマリ タスクが実行されるコンピューティング ノードからのみアップロードされます。 |
| required |
タスクの実行に必要なスケジュール スロットの数。 既定値は 1 です。 タスクは、ノードに十分な空きスケジュール スロットがある場合にのみ、コンピューティング ノードで実行するようにスケジュールできます。 複数インスタンスのタスクの場合、これは 1 である必要があります。 |
| resource |
コマンド ラインを実行する前に Batch サービスがコンピューティング ノードにダウンロードするファイルの一覧。 マルチインスタンス タスクの場合、リソース ファイルは、プライマリ タスクが実行されるコンピューティング ノードにのみダウンロードされます。 リソース ファイルの一覧には最大サイズがあります。 最大サイズを超えると、要求は失敗し、応答エラー コードは RequestEntityTooLarge になります。 この場合、ResourceFiles のコレクションのサイズを小さくする必要があります。 これは、.zip ファイル、アプリケーション パッケージ、または Docker コンテナーを使用して実現できます。 |
| user |
タスクを実行するユーザー ID。 省略した場合、タスクはタスクに固有の非管理ユーザーとして実行されます。 |
プロパティの詳細
affinityInfo
Batch サービスが新しいタスクを開始するコンピューティング ノードを選択するために使用できるローカリティ ヒント。
affinityInfo?: AffinityInformation
プロパティ値
applicationPackageReferences
コマンド ラインを実行する前に Batch サービスがコンピューティング ノードにデプロイするパッケージの一覧。 アプリケーション パッケージは、タスク作業ディレクトリではなく、共有ディレクトリにダウンロードおよびデプロイされます。 したがって、参照されているパッケージが既にノード上にあり、最新の状態である場合、再ダウンロードされません。コンピューティング ノード上の既存のコピーが使用されます。 たとえば、パッケージが削除された、またはダウンロードに失敗したために、参照先のパッケージをインストールできない場合、タスクは失敗します。
applicationPackageReferences?: ApplicationPackageReference[]
プロパティ値
authenticationTokenSettings
Batch サービス操作の実行にタスクが使用できる認証トークンの設定。 このプロパティが設定されている場合、Batch サービスは、アカウント アクセス キーを必要とせずに Batch サービス操作を認証するために使用できる認証トークンを Task に提供します。 トークンは、AZ_BATCH_AUTHENTICATION_TOKEN環境変数を介して提供されます。 タスクがトークンを使用して実行できる操作は、設定によって異なります。 たとえば、タスクは、ジョブに他のタスクを追加したり、ジョブまたはジョブの下の他のタスクの状態を確認したりするために、ジョブのアクセス許可を要求できます。
authenticationTokenSettings?: AuthenticationTokenSettings
プロパティ値
commandLine
タスクのコマンド ライン。 複数インスタンスのタスクの場合、プライマリ タスクとすべてのサブタスクが調整コマンド ラインの実行を完了した後、コマンド ラインがプライマリ タスクとして実行されます。 コマンド ラインはシェルでは実行されないため、環境変数の拡張などのシェル機能を利用することはできません。 このような機能を利用する場合は、コマンド ラインでシェルを呼び出す必要があります。たとえば、Windows では "cmd /c MyCommand" を使用し、Linux では "/bin/sh -c MyCommand" を使用します。 コマンド ラインがファイル パスを参照している場合は、相対パス (Task 作業ディレクトリに対する相対パス) を使用するか、Batch で指定された環境変数 (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables) を使用する必要があります。
commandLine: string
プロパティ値
string
constraints
このタスクに適用される実行制約。 制約を指定しない場合、maxTaskRetryCount はジョブに指定された maxTaskRetryCount、maxWallClockTime は無限、retentionTime は 7 日間です。
constraints?: TaskConstraints
プロパティ値
containerSettings
タスクを実行するコンテナーの設定。 このタスクを実行するプールに containerConfiguration が設定されている場合は、これも設定する必要があります。 このタスクを実行するプールに containerConfiguration が設定されていない場合は、これを設定しないでください。 これを指定すると、AZ_BATCH_NODE_ROOT_DIRの下にあるすべてのディレクトリ (ノード上の Azure Batch ディレクトリのルート) がコンテナーに再帰的にマップされ、すべての Task 環境変数がコンテナーにマップされ、タスク コマンド ラインがコンテナーで実行されます。 AZ_BATCH_NODE_ROOT_DIR外のコンテナーで生成されたファイルはホスト ディスクに反映されない可能性があります。つまり、Batch ファイル API はそれらのファイルにアクセスできません。
containerSettings?: TaskContainerSettings
プロパティ値
dependsOn
このタスクが依存するタスク。 このタスクは、依存するすべてのタスクが正常に完了するまでスケジュールされません。 これらのタスクのいずれかが失敗し、再試行回数が不足した場合、このタスクはスケジュールされません。 ジョブに usesTaskDependencies が true に設定されておらず、この要素が存在する場合、要求はエラー コード TaskDependenciesNotSpecifiedOnJob で失敗します。
dependsOn?: TaskDependencies
プロパティ値
displayName
タスクの表示名。 表示名は一意である必要はありません。最大長 1024 までの Unicode 文字を含めることができます。
displayName?: string
プロパティ値
string
environmentSettings
exitConditions
id
ジョブ内のタスクを一意に識別する文字列。 ID には、ハイフンやアンダースコアを含む任意の英数字を組み合わせて使用でき、64 文字を超えることはできません。 ID は大文字と小文字が区別されず、大文字と小文字が区別されません (つまり、ジョブ内に大文字と小文字のみが異なる 2 つの ID がない可能性があります)。
id: string
プロパティ値
string
multiInstanceSettings
Task がマルチインスタンス タスクであることを示し、マルチインスタンス タスクの実行方法に関する情報を含むオブジェクト。
multiInstanceSettings?: MultiInstanceSettings
プロパティ値
outputFiles
コマンド ラインの実行後に Batch サービスがコンピューティング ノードからアップロードするファイルの一覧。 複数インスタンスのタスクの場合、ファイルはプライマリ タスクが実行されるコンピューティング ノードからのみアップロードされます。
outputFiles?: OutputFile[]
プロパティ値
requiredSlots
タスクの実行に必要なスケジュール スロットの数。 既定値は 1 です。 タスクは、ノードに十分な空きスケジュール スロットがある場合にのみ、コンピューティング ノードで実行するようにスケジュールできます。 複数インスタンスのタスクの場合、これは 1 である必要があります。
requiredSlots?: number
プロパティ値
number
resourceFiles
コマンド ラインを実行する前に Batch サービスがコンピューティング ノードにダウンロードするファイルの一覧。 マルチインスタンス タスクの場合、リソース ファイルは、プライマリ タスクが実行されるコンピューティング ノードにのみダウンロードされます。 リソース ファイルの一覧には最大サイズがあります。 最大サイズを超えると、要求は失敗し、応答エラー コードは RequestEntityTooLarge になります。 この場合、ResourceFiles のコレクションのサイズを小さくする必要があります。 これは、.zip ファイル、アプリケーション パッケージ、または Docker コンテナーを使用して実現できます。
resourceFiles?: ResourceFile[]
プロパティ値
userIdentity
タスクを実行するユーザー ID。 省略した場合、タスクはタスクに固有の非管理ユーザーとして実行されます。
userIdentity?: UserIdentity