JobManagerTask クラス
ジョブ マネージャー タスクの詳細を指定します。
ジョブ マネージャー タスクは、ジョブの作成時に自動的に開始されます。 Batch サービスは、ジョブ内の他のタスクの前にジョブ マネージャー タスクのスケジュールを設定しようとします。 プールを縮小すると、Batch サービスは、ジョブ マネージャー タスクが実行されているノードを可能な限り長く保持しようとします (つまり、"通常" タスクを実行しているコンピューティング ノードは、ジョブ マネージャー タスクを実行する前に削除されます)。 ジョブ マネージャー タスクが失敗し、再起動する必要がある場合、システムは最も優先度の高いスケジュールを設定しようとします。 使用可能なアイドル状態のコンピューティング ノードがない場合、ジョブ マネージャー タスクを再起動するスペースを確保するために、システムはプールで実行中のタスクの 1 つを終了し、キューに戻すことができます。 あるジョブのジョブ マネージャー タスクは、他のジョブのタスクよりも優先されないことに注意してください。 ジョブ間では、ジョブ レベルの優先順位のみが確認されます。 たとえば、優先度 0 のジョブ マネージャーを再起動する必要がある場合、優先度 1 のジョブのタスクは置き換えされません。 Batch は、ノードで回復操作がトリガーされたときにタスクを再試行します。 復旧操作の例としては、異常なノードが再起動されたときや、ホスト障害が原因でコンピューティング ノードが消失した場合などです (ただし、これらに限定されません)。 回復操作による再試行は とは無関係であり、maxTaskRetryCount に対してカウントされません。 maxTaskRetryCount が 0 の場合でも、回復操作による内部再試行が発生する可能性があります。 このため、すべてのタスクはべき等である必要があります。 つまり、タスクは、破損や重複するデータを発生させることなく、中断および再起動されることを許容する必要があります。 実行時間の長いタスクのベスト プラクティスは、何らかの形式のチェックポイント処理を使用することです。
Azure に送信するには、必要なすべてのパラメーターを設定する必要があります。
- 継承
-
JobManagerTask
コンストラクター
JobManagerTask(*, id: str, command_line: str, display_name: str = None, container_settings=None, resource_files=None, output_files=None, environment_settings=None, constraints=None, required_slots: int = None, kill_job_on_completion: bool = None, user_identity=None, run_exclusive: bool = None, application_package_references=None, authentication_token_settings=None, allow_low_priority_node: bool = None, **kwargs)
パラメーター
- command_line
- str
必須。 コマンド ラインはシェルでは実行されないため、環境変数の拡張などのシェル機能を利用することはできません。 このような機能を利用する場合は、コマンド ラインでシェルを呼び出す必要があります。たとえば、Windows では "cmd /c MyCommand" を使用し、Linux では "/bin/sh -c MyCommand" を使用します。 コマンド ラインがファイル パスを参照している場合は、相対パス (タスク作業ディレクトリに対する相対パス) を使用するか、Batch で指定された環境変数 (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables) を使用する必要があります。
- container_settings
- TaskContainerSettings
ジョブ マネージャー タスクを実行するコンテナーの設定。 このタスクを実行するプールに containerConfiguration が設定されている場合は、これも設定する必要があります。 このタスクを実行するプールに containerConfiguration が設定されていない場合は、これを設定しないでください。 これを指定すると、AZ_BATCH_NODE_ROOT_DIRの下にあるすべてのディレクトリ (ノード上のAzure Batchディレクトリのルート) がコンテナーにマップされ、すべての Task 環境変数がコンテナーにマップされ、Task コマンド ラインがコンテナーで実行されます。 AZ_BATCH_NODE_ROOT_DIRの外部のコンテナーで生成されたファイルはホスト ディスクに反映されない可能性があります。つまり、Batch ファイル API はそれらのファイルにアクセスできません。
- resource_files
- list[ResourceFile]
この要素の下に一覧表示されるファイルは、タスクの作業ディレクトリにあります。 リソース ファイルの一覧には最大サイズがあります。 最大サイズを超えると、要求は失敗し、応答エラー コードは RequestEntityTooLarge になります。 この場合、ResourceFiles のコレクションのサイズを小さくする必要があります。 これは、.zip ファイル、アプリケーション パッケージ、または Docker コンテナーを使用して実現できます。
- environment_settings
- list[EnvironmentSetting]
- required_slots
- int
タスクの実行に必要なスケジュール スロットの数。 既定値は 1 です。 タスクは、ノードに十分な空きスケジュール スロットがある場合にのみ、コンピューティング ノードで実行するようにスケジュールできます。 複数インスタンスのタスクの場合、このプロパティはサポートされていないため、指定しないでください。
- kill_job_on_completion
- bool
ジョブ マネージャー タスクの完了が、ジョブ全体の完了を示すかどうか。 true の場合、ジョブ マネージャー タスクが完了すると、Batch サービスによってジョブが完了としてマークされます。 この時点で (ジョブ リリース以外の) タスクが引き続き実行されている場合、それらのタスクは終了します。 false の場合、ジョブ マネージャー タスクの完了はジョブの状態に影響しません。 この場合は、onAllTasksComplete 属性を使用してジョブを終了するか、クライアントまたはユーザーにジョブを明示的に終了させる必要があります。 この例は、ジョブ マネージャーが一連のタスクを作成した後、その実行にそれ以上の役割を持たない場合です。 既定値は、true です。 onAllTasksComplete 属性と onTaskFailure 属性を使用してジョブの有効期間を制御し、ジョブ マネージャー タスクのみを使用してジョブのタスクを作成する (進行状況を監視しない) 場合は、killJobOnCompletion を false に設定することが重要です。
- run_exclusive
- bool
ジョブ マネージャー タスクが実行されているコンピューティング ノードを排他的に使用する必要があるかどうか。 true の場合、ジョブ マネージャーが実行されている限り、同じノードで他のタスクは実行されません。 false の場合、他のタスクはコンピューティング ノード上のジョブ マネージャーと同時に実行できます。 ジョブ マネージャー タスクは通常、コンピューティング ノードの同時実行タスク制限に対してカウントされるため、これは、コンピューティング ノードで複数の同時実行タスクが許可されている場合にのみ関連します。 既定値は、true です。
- application_package_references
- list[ApplicationPackageReference]
アプリケーション パッケージは、タスク作業ディレクトリではなく、共有ディレクトリにダウンロードされて展開されます。 したがって、参照先のアプリケーション パッケージが既にコンピューティング ノード上にあり、最新の状態である場合、再ダウンロードされません。コンピューティング ノード上の既存のコピーが使用されます。 参照先のアプリケーション パッケージをインストールできない場合 (たとえば、パッケージが削除されたか、ダウンロードに失敗したため)、タスクは失敗します。
- authentication_token_settings
- AuthenticationTokenSettings
Batch サービス操作の実行にタスクが使用できる認証トークンの設定。 このプロパティが設定されている場合、Batch サービスは、アカウント アクセス キーを必要とせずに Batch サービス操作を認証するために使用できる認証トークンを Task に提供します。 トークンは、AZ_BATCH_AUTHENTICATION_TOKEN環境変数を介して提供されます。 タスクがトークンを使用して実行できる操作は、設定によって異なります。 たとえば、タスクは、他のタスクをジョブに追加するためにジョブのアクセス許可を要求したり、ジョブまたはジョブの下の他のタスクの状態をチェックしたりできます。
メソッド
as_dict |
json.dump を使用して JSONify できる dict を返します。 高度な使用法では、必要に応じてコールバックをパラメーターとして使用できます。 キーは、Python で使用される属性名です。 Attr_descはメタデータのディクテーションです。 現在、msrest 型の 'type' と RestAPI でエンコードされたキーを持つ 'key' が含まれています。 値は、このオブジェクトの現在の値です。 返される文字列は、キーのシリアル化に使用されます。 戻り値の型がリストの場合、これは階層的な結果のディクトと見なされます。 このファイルの 3 つの例を参照してください。
XML シリアル化が必要な場合は、kwargs is_xml=True を渡すことができます。 |
deserialize |
RestAPI 構文を使用して str を解析し、モデルを返します。 |
enable_additional_properties_sending | |
from_dict |
指定されたキー抽出器を使用してディクテーションを解析し、モデルを返します。 既定では、キー抽出器 (rest_key_case_insensitive_extractor、attribute_key_case_insensitive_extractor、last_rest_key_case_insensitive_extractor) を検討してください |
is_xml_model | |
serialize |
このモデルから Azure に送信される JSON を返します。 これは、 as_dict(full_restapi_key_transformer、keep_readonly=False) のエイリアスです。 XML シリアル化が必要な場合は、kwargs is_xml=True を渡すことができます。 |
validate |
このモデルを再帰的に検証し、ValidationError の一覧を返します。 |
as_dict
json.dump を使用して JSONify できる dict を返します。
高度な使用法では、必要に応じてコールバックをパラメーターとして使用できます。
キーは、Python で使用される属性名です。 Attr_descはメタデータのディクテーションです。 現在、msrest 型の 'type' と RestAPI でエンコードされたキーを持つ 'key' が含まれています。 値は、このオブジェクトの現在の値です。
返される文字列は、キーのシリアル化に使用されます。 戻り値の型がリストの場合、これは階層的な結果のディクトと見なされます。
このファイルの 3 つの例を参照してください。
attribute_transformer
full_restapi_key_transformer
last_restapi_key_transformer
XML シリアル化が必要な場合は、kwargs is_xml=True を渡すことができます。
as_dict(keep_readonly=True, key_transformer=<function attribute_transformer>, **kwargs)
パラメーター
- key_transformer
- <xref:function>
キー トランスフォーマー関数。
- keep_readonly
戻り値
dict JSON 互換オブジェクト
の戻り値の型 :
deserialize
RestAPI 構文を使用して str を解析し、モデルを返します。
deserialize(data, content_type=None)
パラメーター
戻り値
このモデルのインスタンス
例外
enable_additional_properties_sending
enable_additional_properties_sending()
from_dict
指定されたキー抽出器を使用してディクテーションを解析し、モデルを返します。
既定では、キー抽出器 (rest_key_case_insensitive_extractor、attribute_key_case_insensitive_extractor、last_rest_key_case_insensitive_extractor) を検討してください
from_dict(data, key_extractors=None, content_type=None)
パラメーター
- key_extractors
戻り値
このモデルのインスタンス
例外
is_xml_model
is_xml_model()
serialize
このモデルから Azure に送信される JSON を返します。
これは、 as_dict(full_restapi_key_transformer、keep_readonly=False) のエイリアスです。
XML シリアル化が必要な場合は、kwargs is_xml=True を渡すことができます。
serialize(keep_readonly=False, **kwargs)
パラメーター
戻り値
dict JSON 互換オブジェクト
の戻り値の型 :
validate
Azure SDK for Python