次の方法で共有


BatchStartTask interface

Batch は、ノードで復旧操作がトリガーされたときにタスクを再試行します。 復旧操作の例としては、異常なノードが再起動されたときや、ホスト障害が原因でコンピューティング ノードが消えた場合などです (ただし、これらに限定されません)。 回復操作による再試行は独立しており、maxTaskRetryCount に対してカウントされません。 maxTaskRetryCount が 0 の場合でも、復旧操作による内部再試行が発生する可能性があります。 このため、すべてのタスクはべき等である必要があります。 つまり、タスクは、破損やデータの重複を引き起こさずに中断および再起動されることを許容する必要があります。 実行時間の長いタスクのベスト プラクティスは、何らかの形式のチェックポイント処理を使用することです。 場合によっては、コンピューティング ノードが再起動されなかった場合でも、StartTask が再実行されることがあります。 中断プロセスを作成したり、StartTask 作業ディレクトリからサービスをインストール/起動したりする StartTask を回避するには、特別な注意が必要です。これにより、Batch で StartTask を再実行できなくなるためです。

プロパティ

commandLine

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

containerSettings

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

environmentSettings

StartTask の環境変数設定の一覧。

maxTaskRetryCount

タスクを再試行できる最大回数。 終了コードが 0 以外の場合、Batch サービスはタスクを再試行します。 この値は、再試行回数を特に制御します。 Batch サービスはタスクを 1 回試し、この制限まで再試行できます。 たとえば、最大再試行回数が 3 の場合、Batch はタスクを最大 4 回試行します (1 回の最初の再試行と 3 回の再試行)。 最大再試行回数が 0 の場合、Batch サービスはタスクを再試行しません。 最大再試行回数が -1 の場合、Batch サービスは制限なくタスクを再試行しますが、これは開始タスクまたはタスクには推奨されません。 既定値は 0 (再試行なし) です。

resourceFiles

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

userIdentity

StartTaskが動作するユーザーIDです。 省略すると、タスクはタスク固有の非管理者ユーザーとして動作します。

waitForSuccess

コンピューティング ノードでタスクをスケジュールする前に、Batch サービスが StartTask が正常に完了するまで (つまり、終了コード 0 で終了する) のを待つ必要があるかどうか。 True で、ノードで StartTask が失敗した場合、Batch サービスは StartTask を最大再試行回数 (maxTaskRetryCount) まで再試行します。 すべての再試行の後もタスクが正常に完了していない場合、Batch サービスはノードを使用不可としてマークし、タスクをスケジュールしません。 この状態は、コンピューティング ノードの状態とエラー情報の詳細を使用して検出できます。 false の場合、Batch サービスは StartTask の完了を待機しません。 この場合、StartTask がまだ実行されている間に、コンピューティング ノードで他のタスクの実行を開始できます。StartTask が失敗した場合でも、新しいタスクはコンピューティング ノードで引き続きスケジュールされます。 既定値は true です。

プロパティの詳細

commandLine

StartTask のコマンド ライン。 コマンド ラインはシェルでは実行されないため、環境変数の拡張などのシェル機能を利用することはできません。 このような機能を利用する場合は、コマンド ラインでシェルを呼び出す必要があります。たとえば、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

containerSettings

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

containerSettings?: BatchTaskContainerSettings

プロパティ値

environmentSettings

StartTask の環境変数設定の一覧。

environmentSettings?: EnvironmentSetting[]

プロパティ値

maxTaskRetryCount

タスクを再試行できる最大回数。 終了コードが 0 以外の場合、Batch サービスはタスクを再試行します。 この値は、再試行回数を特に制御します。 Batch サービスはタスクを 1 回試し、この制限まで再試行できます。 たとえば、最大再試行回数が 3 の場合、Batch はタスクを最大 4 回試行します (1 回の最初の再試行と 3 回の再試行)。 最大再試行回数が 0 の場合、Batch サービスはタスクを再試行しません。 最大再試行回数が -1 の場合、Batch サービスは制限なくタスクを再試行しますが、これは開始タスクまたはタスクには推奨されません。 既定値は 0 (再試行なし) です。

maxTaskRetryCount?: number

プロパティ値

number

resourceFiles

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

resourceFiles?: ResourceFile[]

プロパティ値

userIdentity

StartTaskが動作するユーザーIDです。 省略すると、タスクはタスク固有の非管理者ユーザーとして動作します。

userIdentity?: UserIdentity

プロパティ値

waitForSuccess

コンピューティング ノードでタスクをスケジュールする前に、Batch サービスが StartTask が正常に完了するまで (つまり、終了コード 0 で終了する) のを待つ必要があるかどうか。 True で、ノードで StartTask が失敗した場合、Batch サービスは StartTask を最大再試行回数 (maxTaskRetryCount) まで再試行します。 すべての再試行の後もタスクが正常に完了していない場合、Batch サービスはノードを使用不可としてマークし、タスクをスケジュールしません。 この状態は、コンピューティング ノードの状態とエラー情報の詳細を使用して検出できます。 false の場合、Batch サービスは StartTask の完了を待機しません。 この場合、StartTask がまだ実行されている間に、コンピューティング ノードで他のタスクの実行を開始できます。StartTask が失敗した場合でも、新しいタスクはコンピューティング ノードで引き続きスケジュールされます。 既定値は true です。

waitForSuccess?: boolean

プロパティ値

boolean