ジョブ定義のパラメータ - AWS Batch

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

ジョブ定義のパラメータ

ジョブ定義は、ジョブ定義名、ジョブ定義のタイプ、パラメータ置換プレースホルダーのデフォルト、ジョブのコンテナプロパティの 4 つの基本部分に分かれています。

ジョブ定義名

jobDefinitionName

ジョブ定義の登録時に名前を指定します。最大 128 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。その名前で最初に登録するジョブ定義のリビジョン番号は 1 です。その名前で登録する後続のジョブ定義には、増分のリビジョン番号が付けられます。

タイプ。: 文字列

必須。 あり

Type

type

ジョブ定義の登録時にジョブのタイプを指定します。マルチノードの並列ジョブ (配列ジョブとも呼ばれます) の詳細については、「」を参照してください。複数ノードの並列ジョブ定義を作成する.

タイプ。: 文字列

有効な値 container | multinode

必須。 あり

Parameters

parameters

ジョブの送信時に、プレースホルダーを置き換えるパラメータやジョブ定義のデフォルトパラメータを上書きするパラメータを指定できます。ジョブ送信リクエストのパラメータは、ジョブ定義のデフォルトよりも優先されます。これにより、同じ形式を使用する複数のジョブに同じジョブ定義を使用し、送信時にプログラムでコマンドの値を変更することができます。

タイプ。文字列マップへの文字列

必須。No

ジョブ定義の登録時に、ジョブのコンテナプロパティの command フィールドでパラメータ置換プレースホルダーを使用できます。たとえば、 と指定します。

"command": [ "ffmpeg", "-i", "Ref::inputfile", "-c", "Ref::codec", "-o", "Ref::outputfile" ]

上の例では、 Ref::inputfileRef::codec、および Ref::outputfile コマンド内のパラメータ代替プレースホルダー。ジョブ定義の parameters オブジェクトで、これらのプレースホルダーのデフォルト値を設定できます。たとえば、Ref::codec プレースホルダーのデフォルトを設定するには、ジョブ定義で次のように指定します。

"parameters" : {"codec" : "mp4"}

このジョブ定義が実行のためにサブミットされると、 Ref::codec コンテナのコマンドの引数がデフォルト値に置き換えられます。 mp4.

コンテナプロパティ

ジョブを配置するときにコンテナインスタンスの Docker デーモンに渡すコンテナプロパティのリストを、ジョブ定義の登録時に指定する必要があります。ジョブ定義では、以下のコンテナプロパティを使用できます。単一のノードジョブでは、上記のプロパティはジョブ定義レベルに設定されます。複数ノードの並列ジョブでは、コンテナプロパティは各ノードグループごとに ノードプロパティ レベルで設定されます。

command

コンテナに渡すコマンド。このパラメータは、 Cmdコンテナを作成する セクション( Docker Remote API および COMMAND パラメータから docker run。 Dockerの詳細については、 CMD パラメータについては、を参照してください。 https://docs.docker.com/engine/reference/builder/#cmd.

"command": ["string", ...]

タイプ。文字列配列

必須。No

environment

コンテナに渡す環境変数。このパラメータは、 Envコンテナを作成する セクション( Docker Remote API および --env オプションから docker run.

重要

認証情報データなどの機密情報にプレーンテキストの環境変数を使用することはお勧めしません。

タイプ。キーと値のペアの配列

必須。No

name

環境変数の名前。

タイプ。: 文字列

必須。はい、以下の場合 environment が使用されています。

value

: 環境変数の値。

タイプ。: 文字列

必須。はい、以下の場合 environment が使用されています。

"environment" : [ { "name" : "string", "value" : "string" }, { "name" : "string", "value" : "string" } ]
image

コンテナの開始に使用するイメージ。この文字列は Docker デーモンに直接渡されます。Docker Hub レジストリのイメージはデフォルトで使用できます。また、 repository-url/image:tag。 最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコア、コロン、ピリオド、スラッシュ、シャープ記号を使用できます。 このパラメータは、 Imageコンテナを作成する セクション( Docker Remote API および IMAGE のパラメータ docker run.

注記

Docker イメージのアーキテクチャは、スケジュールされているコンピューティングリソースのプロセッサアーキテクチャと一致している必要があります。たとえば、ARM ベースの Docker イメージは、ARM ベースのコンピューティングリソースでのみ実行することができます。

  • の画像 Amazon ECR リポジトリは、 registry/repository:tag 命名規則。例えば、 aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest

  • Docker Hub上の公式リポジトリにある画像は、単一の名前(例: ubuntu または mongo)。

  • Docker ハブの他のリポジトリのイメージは、組織名で修飾されます (例: amazon/amazon-ecs-agent).

  • 他のオンラインリポジトリのイメージは、さらにドメイン名で修飾されます (例: quay.io/assemblyline/ubuntu).

タイプ。: 文字列

必須。 あり

jobRoleArn

ジョブ定義の登録時に IAM ロールを指定できます。ジョブコンテナは、このロールから付与されるアクセス権限を使用して、関連するポリシーに指定されている API アクションをユーザーに代わって呼び出します。詳細については、以下を参照してください。 IAM タスクの役割Amazon Elastic Container Service Developer Guide.

タイプ。: 文字列

必須。No

memory

コンテナに適用されるメモリのハード制限 (MiB 単位)。コンテナは、ここで指定したメモリを超えようとすると、強制終了されます。このパラメータは、 Memoryコンテナを作成する セクション( Docker Remote API および --memory オプションから docker run。 ジョブのメモリを4 MiB以上指定する必要があります。これは必要ですが、マルチノード並列(MNP)ジョブには複数の場所で指定できます。各ノードに少なくとも1回指定する必要があります。

注記

特定のインスタンスタイプに対してできるだけ多くのメモリを提供してリソースの使用率を最大限に高めるには、「」を参照してください。コンピューティングリソース メモリ管理.

タイプ。: 整数

必須。 あり

mountPoints

コンテナでのデータボリュームのマウントポイント。このパラメータは、 Volumesコンテナを作成する セクション( Docker Remote API および --volume オプションから docker run.

"mountPoints": [ { "sourceVolume": "string", "containerPath": "string", "readOnly": true|false } ]

タイプ。オブジェクト配列

必須。No

sourceVolume

マウントするボリュームの名前。

タイプ。: 文字列

必須。はい、以下の場合 mountPoints が使用されています。

containerPath

ホストボリュームをマウントするコンテナ上のパス。

タイプ。: 文字列

必須。はい、以下の場合 mountPoints が使用されています。

readOnly

この値が true の場合、コンテナはボリュームへの読み取り専用アクセスを許可されます。この値が false の場合、コンテナはボリュームに書き込むことができます。デフォルト値は です。false.

タイプ。: ブール値

必須。No

privileged

このパラメータが true のとき、コンテナには、ホストコンテナインスタンスに対する昇格されたアクセス権限 (root ユーザーと同様) が付与されます。このパラメータは、 Privilegedコンテナを作成する セクション( Docker Remote API および --privileged オプションから docker run.

"privileged": true|false

タイプ。: ブール値

必須。No

readonlyRootFilesystem

このパラメーターが true のとき、コンテナはそのルートファイルシステムへの読み取り専用アクセスを許可されます。このパラメータは、 ReadonlyRootfsコンテナを作成する セクション( Docker Remote API および --read-only オプションから docker run.

"readonlyRootFilesystem": true|false

タイプ。: ブール値

必須。No

ulimits

コンテナで設定する ulimits 値のリスト。このパラメータは、 Ulimitsコンテナを作成する セクション( Docker Remote API および --ulimit オプションから docker run.

"ulimits": [ { "name": string, "softLimit": integer, "hardLimit": integer } ... ]

タイプ。オブジェクト配列

必須。No

name

は、 typeulimit.

タイプ。: 文字列

必須。はい、以下の場合 ulimits が使用されています。

hardLimit

のハード・リミット ulimit タイプ。

タイプ。: 整数

必須。はい、以下の場合 ulimits が使用されています。

softLimit

のソフトリミット ulimit タイプ。

タイプ。: 整数

必須。はい、以下の場合 ulimits が使用されています。

user

コンテナ内で使用するユーザー名。このパラメータは、 Userコンテナを作成する セクション( Docker Remote API および --user オプションから docker run.

"user": "string"

タイプ。: 文字列

必須。No

resourceRequirements

コンテナ用に予約される GPU の数を示します。

"resourceRequirements" : [ { "type": "GPU", "value": "number" } ]

タイプ。オブジェクト配列

必須。No

type

はサポートされる唯一の値です。GPU.

タイプ。: 文字列

必須。はい、以下の場合 resourceRequirements が使用されています。

value

各コンテナが必要とする物理的な GPU の数です。

タイプ。: 文字列

必須。はい、以下の場合 resourceRequirements が使用されています。

linuxParameters

コンテナに適用される Linux 固有の変更 (デバイスマッピングの詳細など)。

"linuxParameters": { "devices": [ { "hostPath": "string", "containerPath": "string", "permissions": [ "READ", "WRITE", "MKNOD" ] } ] }

タイプ。Linuxパラメータ オブジェクト

必須。No

devices

コンテナにマッピングされたデバイスのリスト。

タイプ。の配列 デバイス オブジェクト

必須。No

hostPath

ホストでデバイスが使用可能なパス。

タイプ。: 文字列

必須。 あり

containerPath

コンテナでデバイスが公開されるパス。指定しない場合、デバイスはホストパスと同じパスで公開されます。

タイプ。: 文字列

必須。No

permissions

コンテナでのデバイスのアクセス許可。これが指定されていない場合、権限は に設定されます。 READWRITE、および MKNOD.

タイプ。: 文字列の配列

必須。No

有効な値 READ | WRITE | MKNOD

vcpus

コンテナ用に予約された vCPU の数。このパラメータは、 CpuSharesコンテナを作成する セクション( Docker Remote API および --cpu-shares オプションから docker run。 各vCPUは1.024個のCPU共有に相当します。少なくとも 1 つの vCPU を指定する必要があります。これは必要ですが、マルチノード並列(MNP)ジョブには複数の場所で指定できます。各ノードに少なくとも1回指定する必要があります。

タイプ。: 整数

必須。 あり

volumes

ジョブ定義の登録時に、コンテナインスタンスの Docker デーモンに渡すボリュームのリストを指定できます。コンテナプロパティでは、以下のパラメータを使用できます。

[ { "name": "string", "host": { "sourcePath": "string" } } ]
name

ボリュームの名前。最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。この名前は、 sourceVolume コンテナー定義のパラメーターコンテナーテイギノパラメーター mountPoints.

タイプ。: 文字列

必須。 あり

host

_の内容 host パラメータは、データボリュームがホストコンテナインスタンス上および格納場所上に存在するかどうかを決定します。_が host パラメータが空の場合、Dockerデーモンはデータボリュームのホストパスを割り当てます。ただし、関連付けられたコンテナが実行を停止した後にデータが保持されるとは限りません。

タイプ。オブジェクト

必須。No

sourcePath

コンテナに渡すホストコンテナインスタンス上のパス。このパラメータが空の場合は、Docker デーモンによってホストパスが割り当てられます。

_が host パラメータ には、 sourcePath 手動で削除するまで、データ ボリュームはホスト コンテナ インスタンス上の指定された場所に保持されます。_が sourcePath 値がホストコンテナインスタンスに存在しません。Dockerデーモンが作成します。その場所が存在する場合は、ソースパスフォルダーの内容がエクスポートされます。

タイプ。: 文字列

必須。No

ノードプロパティ

nodeProperties

複数ノードの並列ジョブ定義を登録する場合、ジョブで使用するノード数、主要なノードのインデックスおよび使用する別のノード範囲を定義するノードプロパティの一覧を指定する必要があります。ジョブ定義では、以下のノードプロパティを使用できます。詳細については、「」を参照してください。マルチノードの並列ジョブ.

タイプ。ノードプロパティ オブジェクト

必須。No

mainNode

複数ノードの並列ジョブの主要なノードにノードインデックスを指定します。

タイプ。: 整数

必須。 あり

numNodes

複数ノードの並列ジョブに関連付けられたノードの数。

タイプ。: 整数

必須。 あり

nodeRangeProperties

複数ノードの並列ジョブに関連付けられたノード範囲とそのプロパティの一覧。

タイプ。の配列 ノード範囲プロパティ オブジェクト

必須。 あり

targetNodes

ノードのインデックス値を使用したノードの範囲。0:3 の範囲は、インデックス値が 0 から 3 のノードを示しています。開始範囲値が省略されている場合 (:n)、開始範囲に 0 が使用されます。終了範囲値が省略されている場合 (:n)、終了範囲にできるだけ高いノードインデックスが使用されます。累積ノード範囲は、すべてのノード (0:n) を考慮する必要があります。ノード範囲をネストする場合 (たとえば、0:10 と 4:5)、4:5 範囲のプロパティが 0:10 プロパティを上書きします。

タイプ。: 文字列

必須。No

container

ノード範囲のコンテナの詳細。詳細については、「」を参照してください。コンテナプロパティ.

タイプ。コンテナプロパティ オブジェクト

必須。No

再試行戦略

retryStrategy

ジョブ定義の登録時に、オプションとして、このジョブ定義で送信したジョブが失敗したときの再試行戦略を指定できます。デフォルトでは、各ジョブは 1 回試行されます。複数の試行を指定すると、ジョブが失敗した場合 (ゼロ以外の終了コードが返された場合やコンテナインスタンスが終了した場合) に再試行されます。詳細については、「」を参照してください。ジョブの再試行の自動化.

タイプ。戦略の再試行 オブジェクト

必須。No

attempts

ジョブを RUNNABLE ステータスに移行する回数。1〜10 回の試行を指定できます。 の回数が 1 より大きい場合、ジョブは attempts に移行するまでにその回数内で再試行されます。RUNNABLE.

"attempts": integer

タイプ。: 整数

必須。No

Timeout

timeout

この期間を超えてジョブが実行されると AWS Batch でジョブが終了するように、ジョブのタイムアウト期間を設定できます。詳細については、「」を参照してください。ジョブのタイムアウト. タイムアウトが原因でジョブが終了した場合は、再試行されません。で指定したタイムアウト構成 ジョブの送信 操作はここで定義されたタイムアウト設定を上書きします。詳細については、「」を参照してください。ジョブのタイムアウト.

タイプ。ジョブタイムアウト オブジェクト

必須。No

attemptDurationSeconds

所要時間(秒)(ジョブの試行から測定) startedAt タイムスタンプ)、その後 AWS Batch 未完了のジョブを終了します。タイムアウトの最小値は 60 秒です。

タイプ。: 整数

必須。No