CloudTask 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 | このタスクに適用される実行制約。 |
| container |
タスクを実行するコンテナーの設定。 このタスクを実行するプールに containerConfiguration が設定されている場合は、これも設定する必要があります。 このタスクを実行するプールに containerConfiguration が設定されていない場合は、これを設定しないでください。 これを指定すると、AZ_BATCH_NODE_ROOT_DIRの下にあるすべてのディレクトリ (ノード上の Azure Batch ディレクトリのルート) がコンテナーに再帰的にマップされ、すべての Task 環境変数がコンテナーにマップされ、タスク コマンド ラインがコンテナーで実行されます。 AZ_BATCH_NODE_ROOT_DIR外のコンテナーで生成されたファイルはホスト ディスクに反映されない可能性があります。つまり、Batch ファイル API はそれらのファイルにアクセスできません。 |
| creation |
タスクの作成時刻。 |
| depends |
このタスクが依存するタスク。 このタスクは、依存するすべてのタスクが正常に完了するまでスケジュールされません。 これらのタスクのいずれかが失敗し、再試行回数が不足した場合、このタスクはスケジュールされません。 |
| display |
タスクの表示名。 表示名は一意である必要はありません。最大長 1024 までの Unicode 文字を含めることができます。 |
| environment |
タスクの環境変数設定の一覧。 |
| e |
タスクの ETag。 これは不透明な文字列です。 これを使用して、タスクが要求間で変更されたかどうかを検出できます。 特に、タスクを更新するときに ETag を渡して、その間に他の誰もタスクを変更していない場合にのみ変更を有効にするように指定できます。 |
| execution |
タスクの実行に関する情報。 |
| exit |
タスクが完了したときに Batch サービスが応答する方法。 |
| id | ジョブ内のタスクを一意に識別する文字列。 ID には、ハイフンやアンダースコアを含む任意の英数字を組み合わせて使用でき、64 文字を超えることはできません。 |
| last |
タスクの最終変更時刻。 |
| multi |
Task がマルチインスタンス タスクであることを示し、マルチインスタンス タスクの実行方法に関する情報を含むオブジェクト。 |
| node |
タスクが実行されたコンピューティング ノードに関する情報。 |
| output |
コマンド ラインの実行後に Batch サービスがコンピューティング ノードからアップロードするファイルの一覧。 複数インスタンスのタスクの場合、ファイルはプライマリ タスクが実行されるコンピューティング ノードからのみアップロードされます。 |
| previous |
タスクの以前の状態。 Task が初期状態の場合、このプロパティは設定されません。 使用可能な値は、'active'、'prepareing'、'running'、'completed' です。 |
| previous |
タスクが以前の状態になった時刻。 Task が初期状態の場合、このプロパティは設定されません。 |
| required |
タスクの実行に必要なスケジュール スロットの数。 既定値は 1 です。 タスクは、ノードに十分な空きスケジュール スロットがある場合にのみ、コンピューティング ノードで実行するようにスケジュールできます。 複数インスタンスのタスクの場合、これは 1 である必要があります。 |
| resource |
コマンド ラインを実行する前に Batch サービスがコンピューティング ノードにダウンロードするファイルの一覧。 マルチインスタンス タスクの場合、リソース ファイルは、プライマリ タスクが実行されるコンピューティング ノードにのみダウンロードされます。 リソース ファイルの一覧には最大サイズがあります。 最大サイズを超えると、要求は失敗し、応答エラー コードは RequestEntityTooLarge になります。 この場合、ResourceFiles のコレクションのサイズを小さくする必要があります。 これは、.zip ファイル、アプリケーション パッケージ、または Docker コンテナーを使用して実現できます。 |
| state | タスクの現在の状態。 使用可能な値は、'active'、'prepareing'、'running'、'completed' です。 |
| state |
タスクが現在の状態になった時刻。 |
| stats | タスクのリソース使用状況の統計。 |
| url | タスクの URL。 |
| 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
containerSettings
タスクを実行するコンテナーの設定。 このタスクを実行するプールに containerConfiguration が設定されている場合は、これも設定する必要があります。 このタスクを実行するプールに containerConfiguration が設定されていない場合は、これを設定しないでください。 これを指定すると、AZ_BATCH_NODE_ROOT_DIRの下にあるすべてのディレクトリ (ノード上の Azure Batch ディレクトリのルート) がコンテナーに再帰的にマップされ、すべての Task 環境変数がコンテナーにマップされ、タスク コマンド ラインがコンテナーで実行されます。 AZ_BATCH_NODE_ROOT_DIR外のコンテナーで生成されたファイルはホスト ディスクに反映されない可能性があります。つまり、Batch ファイル API はそれらのファイルにアクセスできません。
containerSettings?: TaskContainerSettings
プロパティ値
creationTime
タスクの作成時刻。
creationTime?: Date
プロパティ値
Date
dependsOn
このタスクが依存するタスク。 このタスクは、依存するすべてのタスクが正常に完了するまでスケジュールされません。 これらのタスクのいずれかが失敗し、再試行回数が不足した場合、このタスクはスケジュールされません。
dependsOn?: TaskDependencies
プロパティ値
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
Task がマルチインスタンス タスクであることを示し、マルチインスタンス タスクの実行方法に関する情報を含むオブジェクト。
multiInstanceSettings?: MultiInstanceSettings
プロパティ値
nodeInfo
outputFiles
コマンド ラインの実行後に Batch サービスがコンピューティング ノードからアップロードするファイルの一覧。 複数インスタンスのタスクの場合、ファイルはプライマリ タスクが実行されるコンピューティング ノードからのみアップロードされます。
outputFiles?: OutputFile[]
プロパティ値
previousState
タスクの以前の状態。 Task が初期状態の場合、このプロパティは設定されません。 使用可能な値は、'active'、'prepareing'、'running'、'completed' です。
previousState?: TaskState
プロパティ値
previousStateTransitionTime
タスクが以前の状態になった時刻。 Task が初期状態の場合、このプロパティは設定されません。
previousStateTransitionTime?: Date
プロパティ値
Date
requiredSlots
タスクの実行に必要なスケジュール スロットの数。 既定値は 1 です。 タスクは、ノードに十分な空きスケジュール スロットがある場合にのみ、コンピューティング ノードで実行するようにスケジュールできます。 複数インスタンスのタスクの場合、これは 1 である必要があります。
requiredSlots?: number
プロパティ値
number
resourceFiles
コマンド ラインを実行する前に Batch サービスがコンピューティング ノードにダウンロードするファイルの一覧。 マルチインスタンス タスクの場合、リソース ファイルは、プライマリ タスクが実行されるコンピューティング ノードにのみダウンロードされます。 リソース ファイルの一覧には最大サイズがあります。 最大サイズを超えると、要求は失敗し、応答エラー コードは RequestEntityTooLarge になります。 この場合、ResourceFiles のコレクションのサイズを小さくする必要があります。 これは、.zip ファイル、アプリケーション パッケージ、または Docker コンテナーを使用して実現できます。
resourceFiles?: ResourceFile[]
プロパティ値
state
タスクの現在の状態。 使用可能な値は、'active'、'prepareing'、'running'、'completed' です。
state?: TaskState
プロパティ値
stateTransitionTime
タスクが現在の状態になった時刻。
stateTransitionTime?: Date
プロパティ値
Date
stats
url
タスクの URL。
url?: string
プロパティ値
string
userIdentity
タスクを実行するユーザー ID。 省略した場合、タスクはタスクに固有の非管理ユーザーとして実行されます。
userIdentity?: UserIdentity