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

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ジョブ定義のパラメータ

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

ジョブ定義名

jobDefinitionName

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

Type: 文字列

: 必須 はい

タイプ

type

ジョブ定義の登録時にジョブのタイプを指定します。ジョブが Fargate リソースで実行されている場合、multinode はサポートされません。マルチノードの並列ジョブの詳細については、「マルチノードの並列ジョブ定義を作成する」を参照してください。

Type: 文字列

有効な値: container | multinode

: 必須 はい

パラメータ

parameters

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

Type: 文字列から文字列へのマッピング

: 必須 なし

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

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

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

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

このジョブ定義を送信すると、実行時にコンテナのコマンドの Ref::codec 引数がデフォルト値の mp4 に置き換えられます。

プラットフォーム機能

platformCapabilities

ジョブ定義に必要なプラットフォーム機能。値が指定されていない場合、デフォルトは EC2 になります。Fargate リソースで実行されるジョブの場合、FARGATEが指定されている。

Type: 文字列

有効な値: EC2 | FARGATE

: 必須 なし

タグの伝播

propagateTags

タグをジョブまたはジョブ定義から対応する Amazon ECS タスクに伝播するかどうかを指定します。値を指定しない場合、タグは伝播されません。タグは、タスクの作成時にのみタスクに伝播できます。同じ名前のタグの場合、ジョブタグはジョブ定義タグよりも優先されます。ジョブとジョブ定義から合わせたタグの合計数が 50 を超える場合、ジョブは FAILED 状態に移行します。

Type: ブール値

: 必須 なし

コンテナプロパティ

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

command

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

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

Type: 文字列配列

: 必須 なし

environment

コンテナに渡す環境変数。このパラメータは、Docker Remote APIコンテナの作成セクションにEnvにマップされ、--envオプションはdocker runにマップされます。

重要

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

注記

環境変数は AWS_BATCH で始まることはできません。この命名規則は、AWS Batch サービスで設定される変数のために予約されています。

Type: キーと値のペアの配列

: 必須 なし

name

環境変数の名前。

Type: 文字列

: 必須 はい、いつenvironmentが用いられる。

value

環境変数の値。

Type: 文字列

: 必須 はい、いつenvironmentが用いられる。

"environment" : [ { "name" : "envName1", "value" : "envValue1" }, { "name" : "envName2", "value" : "envValue2" } ]
executionRoleArn

ジョブ定義の登録時に IAM ロールを指定できます。Amazon ECS コンテナエージェントは、このロールから付与されるアクセス権限を使用して、関連するポリシーに指定されている API アクションをユーザーに代わって呼び出します。Fargate リソースで実行されるジョブの場合、実行ロールを指定する必要があります。詳細については、「AWS Batch タスク実行 IAM ロール」を参照してください。

Type: 文字列

: 必須 なし

fargatePlatformConfiguration

Fargate リソースで実行されているジョブのプラットフォーム設定。EC2 リソースで実行されているジョブでは、このパラメータを指定しないでください。

Type: FargatePlatformConfiguration対象

: 必須 なし

platformVersion

ジョブに使用される AWS Fargate プラットフォームバージョン、または最近承認されたAWS Fargate プラットフォーム のバージョンを使用するための LATEST

Type: 文字列

デフォルト: LATEST

: 必須 なし

image

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

注記

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

  • Amazon ECR パブリックリポジトリ内のイメージは、registry/repository[:tag]またはregistry/repository[@digest]命名規則 (たとえば、public.ecr.aws/registry_alias/my-web-app:latest).

  • Amazon ECR リポジトリ内のイメージには、完全な registry/repository:[tag] 命名規則が使用されます。例えば、aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latestです。

  • Docker ハブの公式リポジトリのイメージでは、1 つの名前 (例: ubuntumongo) を使用します。

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

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

Type: 文字列

: 必須 はい

instanceType

マルチノード並列ジョブに使用するインスタンスタイプ。マルチノードの並列ジョブのすべてのノードグループは、同じインスタンスタイプを使用する必要があります。このパラメータは、単一ノードのコンテナジョブ、または Fargate リソースで実行されるジョブでは無効です。

Type: 文字列

: 必須 なし

jobRoleArn

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

Type: 文字列

: 必須 なし

linuxParameters

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

"linuxParameters": { "devices": [ { "hostPath": "string", "containerPath": "string", "permissions": [ "READ", "WRITE", "MKNOD" ] } ], "initProcessEnabled": true|false, "sharedMemorySize": 0, "tmpfs": [ { "containerPath": "string", "size": integer, "mountOptions": [ "string" ] } ], "maxSwap": integer, "swappiness": integer }

Type: LinuxParameters対象

: 必須 なし

devices

コンテナにマッピングされたデバイスのリスト。このパラメータは、Docker Remote APIコンテナの作成セクションの Devices にマップされ、--device オプションは [docker run] にマップされます。

注記

このパラメータは、Fargate リソースで実行されているジョブには適用されないため、提供できません。

Type: 配列のデバイスオブジェクト

: 必須 なし

hostPath

ホストコンテナインスタンスで使用可能なデバイスがあるパス。

Type: 文字列

: 必須 はい

containerPath

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

Type: 文字列

: 必須 なし

permissions

コンテナでのデバイスのアクセス許可。指定しない場合、アクセス許可は READWRITEMKNOD に設定されます。

Type: 文字列の配列

: 必須 なし

有効な値: READ | WRITE | MKNOD

initProcessEnabled

true の場合、信号を転送し、プロセスを利用するコンテナ内で init プロセスを実行します。このパラメータは、[docker run]--init オプションにマッピングされます。このパラメータは、コンテナインスタンスで Docker Remote API バージョン 1.25 以上を使用する必要があります。コンテナインスタンスの Docker Remote API のバージョンを確認するには、コンテナインスタンスにログインし、sudo docker version | grep "Server API version" コマンドを実行します。

Type: ブール値

: 必須 なし

maxSwap

ジョブで使用可能なスワップメモリの合計容量 (単位: MiB) を指定します。このパラメータは、docker run--memory-swap オプションに変換されます。値はコンテナメモリの合計に maxSwap 値を加えた値です。詳細については、Docker ドキュメントの「--memory-swap 詳細」を参照してください。

0maxSwap 値を指定した場合、コンテナはスワップを使用しません。許容値は、0 または任意の正の整数です。maxSwap パラメータを省略すると、コンテナは実行中のコンテナインスタンスのスワップ設定を使用します。swappiness パラメータを使用するには、maxSwap 値を設定する必要があります。

注記

このパラメータは、Fargate リソースで実行されているジョブには適用されないため、提供できません。

Type: 整数

: 必須 なし

sharedMemorySize

/dev/shm ボリュームのサイズ値 (MiB) です。このパラメータは、docker run--shm-size オプションにマッピングされます。

注記

このパラメータは、Fargate リソースで実行されているジョブには適用されないため、指定できません。

Type: 整数

: 必須 なし

swappiness

これにより、コンテナのメモリスワップ動作を調整できます。swappiness 値が 0 の場合、絶対に必要な場合を除きスワップは行われません。100 値が swappiness の場合、ページは非常に積極的にスワップされます。使用できる値は、0100 の間の整数です。swappiness パラメータを指定しない場合、デフォルト値の 60 が使用されます。maxSwap の値が指定されていない場合、このパラメータは無視されます。maxSwap が 0 に設定されている場合、コンテナはスワップを使用しません。このパラメータは、docker run--memory-swappiness オプションにマッピングされます。

コンテナごとのスワップ設定を使用する場合は、次の点を考慮してください。

  • スワップ領域を有効にし、コンテナが使用するコンテナインスタンスで割り当てる必要があります。

    注記

    Amazon ECS 最適化 AMI では、スワップはデフォルトで有効になっていません。この機能を使用するには、インスタンスでスワップを有効にする必要があります。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「インスタンスストアのスワップボリューム」または「スワップファイルを使用して Amazon EC2 インスタンスのスワップ領域として動作するようにメモリを割り当てるには?」を参照してください。

  • スワップ領域のパラメータは、EC2 リソースを使用するジョブ定義でのみサポートされます。

  • maxSwap および swappiness パラメータがジョブ定義から省略されると、各コンテナのデフォルトの swappiness 値が 60 になり、合計スワップ使用量はコンテナのメモリ予約の 2 倍に制限されます。

注記

このパラメータは、Fargate リソースで実行されているジョブには適用されないため、提供できません。

Type: 整数

: 必須 なし

tmpfs

tmpfs マウントのコンテナパス、マウントオプション、およびサイズ。

Type: 配列のTmpfsオブジェクト

注記

このパラメータは、Fargate リソースで実行されているジョブには適用されないため、提供できません。

: 必須 なし

containerPath

tmpfs ボリュームをマウントするコンテナ内のファイルの絶対パス。

Type: 文字列

: 必須 はい

mountOptions

tmpfs ボリュームのマウントオプションのリストです。

有効な値:「defaults」|「ro」|「rw」|「suid」|「nosuid」|「dev」|「nodev」|「exec」|「noexec」|「sync」|「async」|「dirsync」|「remount」|「mand」|「nomand」|「atime」|「noatime」|「diratime」|「nodiratime」|「bind」|「rbind」|「unbindable」|「runbindable」|「private」|「rprivate」|「shared」|「rshared」|「slave」|「rslave」|「relatime」|「norelatime」|「strictatime」|「nostrictatime」|「mode」|「uid」|「gid」|「nr_inodes」|「nr_blocks」|「mpol

Type: 文字列の配列

: 必須 なし

size

tmpfs ボリュームのサイズ (MiB) です。

Type: 整数

: 必須 はい

logConfiguration

ジョブのログ設定の仕様。

このパラメータは、Docker Remote APIコンテナの作成セクションの LogConfig にマップされ、--log-driver オプションは docker run にマップされます。デフォルトでは、コンテナは Docker デーモンで使用されるのと同じロギングドライバーを使用します。ただし、コンテナで Docker デーモンとは異なるログドライバーを使用するには、コンテナの定義内でこのパラメータを使用してログドライバーを指定します。コンテナに異なるロギングドライバーを使用するには、コンテナインスタンス またはリモートログ記録オプションの別のログサーバーでログシステムを適切に設定する必要があります。サポートされているさまざまなログドライバーのオプションの詳細については、Docker ドキュメントの「ログドライバーの設定」を参照してください。

注記

AWS Batch では現在、Docker デーモンの使用可能なログドライバーがいくつかサポートされています (「LogConfiguration」データ型を参照)。

このパラメータは、コンテナインスタンスで Docker Remote API バージョン 1.18 以上を使用する必要があります。コンテナインスタンスの Docker Remote API のバージョンを確認するには、コンテナインスタンスにログインし、sudo docker version | grep "Server API version" コマンドを実行します。

"logConfiguration": { "devices": [ { "logDriver": "string", "options": { "optionName1" : "optionValue1", "optionName2" : "optionValue2" } "secretOptions": [ { "name" : "secretOptionName1", "valueFrom" : "secretOptionArn1" }, { "name" : "secretOptionName2", "valueFrom" : "secretOptionArn2" } ] } ] }

Type: LogConfiguration対象

: 必須 なし

logDriver

ジョブに使用するログドライバー。デフォルトでは、AWS Batch が awslogsログドライバーを有効にします。このパラメータの有効な値は、Amazon ECS コンテナエージェントがデフォルトで通信できるログドライバーです。

このパラメータは、Docker Remote APIコンテナの作成セクションの LogConfig にマップされ、--log-driver オプションは docker run にマップされます。デフォルトでは、ジョブは Docker デーモンで使用されるのと同じロギングドライバーを使用します。ただし、ジョブで Docker デーモンとは異なるログドライバーを使用するには、コンテナの定義内でこのパラメータを使用してログドライバーを指定します。ジョブに別のログドライバを指定する場合は、コンピューティング環境のコンテナインスタンスでログシステムを設定する必要があります。または、別のログサーバーでリモートログオプションを提供するように設定する必要があります。サポートされているさまざまなログドライバーのオプションの詳細については、Docker ドキュメントの「ログドライバーの設定」を参照してください。

注記

AWS Batch では現在、Docker デーモンに使用可能なログドライバーがいくつかサポートされています。Amazon ECS コンテナエージェントの今後のリリースで他のログドライバーが追加される可能性があります。

サポートされているログドライバーは awslogsfluentdgelfjson-filejournaldlogentriessyslogsplunk です。

注記

Fargate リソースで実行されているジョブでは、awslogs および splunk ログドライバーに制限されます。

このパラメータは、コンテナインスタンスで Docker Remote API バージョン 1.18 以上を使用する必要があります。コンテナインスタンスの Docker Remote API のバージョンを確認するには、コンテナインスタンスにログインし、sudo docker version | grep "Server API version" コマンドを実行します。

注記

コンテナインスタンスで実行される Amazon ECS コンテナエージェントは、そのインスタンスで利用可能なロギングドライバを ECS_AVAILABLE_LOGGING_DRIVERS 環境変数に登録する必要があります。そうしないと、そのインスタンスに配置されたコンテナはこれらのログ設定オプションを使用できません。詳細については、次を参照してください。Amazon ECS コンテナエージェントの設定Amazon Elastic コンテナサービス開発者ガイド

awslogs

Amazonを指定します。 CloudWatch ログ記録ドライバーです。詳細については、次を参照してください。awslogs ログドライバーを使用するそしてアマゾン CloudWatch ログ記録ドライバーDocker ドキュメントの

fluentd

Fluentd ログ記録ドライバーを指定します。使用方法やオプションなどの詳細については、Docker ドキュメントの「Fluentd logging driver」を参照してください。

gelf

Graylog 拡張形式 (GELF) ログ記録ドライバーを指定します。使用方法やオプションなどの詳細については、Docker ドキュメントの「Graylog Extended Format logging driver」を参照してください。

journald

Journald ログ記録ドライバーを指定します。使用方法やオプションなどの詳細については、Docker ドキュメントの「JJournald logging driver」を参照してください。

json-file

JSON ファイルログ記録ドライバーを指定します。使用方法やオプションなどの詳細については、Docker ドキュメントの「JSON File logging driver」を参照してください。

splunk

Splunk ログ記録ドライバーを指定します。使用方法やオプションなどの詳細については、Docker ドキュメントの「Splunk logging driver」を参照してください。

syslog

syslog ログ記録ドライバーを指定します。使用方法やオプションなどの詳細については、Docker ドキュメントの「Syslog logging driver」を参照してください。

Type: 文字列

: 必須 はい

有効な値: awslogs | fluentd | gelf | journald | json-file | splunk | syslog

注記

前述以外のカスタムドライバーを Amazon ECS コンテナエージェントで使用する場合は、GitHub で入手できる Amazon ECS コンテナエージェントプロジェクトをフォークし、そのドライバーを使用できるようにカスタマイズできます。含めることを希望する変更について、プルリクエストを送信することをお勧めします。ただし、現在、Amazon Web Services では、このソフトウェアの変更されたコピーの実行をサポートしていません。

options

ジョブのログドライバーに送信するログ設定オプション。

このパラメータは、コンテナインスタンスで Docker Remote API バージョン 1.19 以上を使用する必要があります。

Type: 文字列から文字列へのマッピング

: 必須 なし

secretOptions

ログ設定に渡すシークレットを表すオブジェクト。詳細については、「機密データの指定」を参照してください。

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

: 必須 なし

name

ジョブで設定するログドライバーオプションの名前。

Type: 文字列

: 必須 はい

valueFrom

コンテナのログ設定に公開するシークレットの ARN。サポートされている値は、Secrets Manager シークレットの完全な ARN または SSN パラメータストア内のパラメータの完全な ARN のいずれかです。

注記

起動するタスクと同じリージョンに SSM パラメータストアのパラメータが存在する場合は、パラメータの完全な ARN または名前のどちらも使用できます。パラメータが別のリージョンに存在する場合は、完全な ARN を指定する必要があります。

Type: 文字列

: 必須 はい

memory

このパラメータは廃止されました。代わりに resourceRequirements を使用してください。

ジョブ用に予約されたメモリの MiB 数。

resourceRequirements の使い方の一例として、ジョブ定義に次のような行が含まれている場合は、次のようになります。

"containerProperties": { "memory": 512 }

[resourceRequirements] を使用した同等のラインは以下の通りです。

"containerProperties": { "resourceRequirements": [ { "type": "MEMORY", "value": "512" } ] }

Type: 整数

: 必須 はい

mountPoints

コンテナでのデータボリュームのマウントポイント。このパラメータは、Docker Remote APIコンテナの作成セクションの Volumes にマップされ、--volume オプションは docker run にマップされます。

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

Type: オブジェクト配列

: 必須 なし

sourceVolume

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

Type: 文字列

: 必須 はい、mountPointsが用いられる。

containerPath

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

Type: 文字列

: 必須 はい、mountPointsが用いられる。

readOnly

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

Type: ブール値

: 必須 なし

デフォルト: False

networkConfiguration

Fargate リソースで実行されているジョブのネットワーク設定。EC2 リソースで実行されているジョブでは、このパラメータを指定しないでください。

"networkConfiguration": { "assignPublicIp": "string" }

Type: オブジェクト配列

: 必須 なし

assignPublicIp

ジョブにパブリック IP アドレスがある必要があるかどうかを示します。これは、ジョブがアウトバウンドネットワークアクセスが必要な場合に必要です。

Type: 文字列

有効な値: ENABLED | DISABLED

: 必須 なし

デフォルト: DISABLED

privileged

このパラメータが true のとき、コンテナには、ホストコンテナインスタンスに対する昇格されたアクセス許可 (root ユーザーと同様) が付与されます。このパラメータは、Docker Remote API コンテナの作成セクションの Privileged にマップされ、--privileged オプションは docker run にマップされます。このパラメータは、Fargate リソースで実行されているジョブには適用できません。また、false として指定することもできません。

"privileged": true|false

Type: ブール値

: 必須 なし

readonlyRootFilesystem

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

"readonlyRootFilesystem": true|false

Type: ブール値

: 必須 なし

resourceRequirements

コンテナに割り当てるリソースのタイプと量。サポートされているリソースには GPUMEMORY および VCPU などがあります。

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

Type: オブジェクト配列

: 必須 なし

type

コンテナに割り当てるリソースのタイプ。サポートされているリソースには GPUMEMORY および VCPU などがあります。

Type: 文字列

: 必須 はい、resourceRequirementsが用いられる。

value

コンテナ用に予約する指定されたリソースの量。値は、指定された type によって異なります。

タイプ =「GPU」

コンテナ用に予約する物理 GPU の数。ジョブ内のすべてのコンテナ用に予約されている GPU の数は、ジョブが起動されたコンピューティングリソースで使用できる GPU の数以下である必要があります。

タイプ =「MEMORY」

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

注記

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

Fargate リソースで実行されているジョブの場合、value はサポートされている値の 1 つと一致する必要があります。さらに、VCPU の値は、そのメモリ値でサポートされている値の 1 つである必要があります。

VCPU MEMORY

0.25 vCPU

512、1024、2048 MiB

0.5 vCPU

1024、2048、3072、4096 MiB

1 vCPU

2048、3072、4096、5120、6144、7168、8192 MiB

2 vCPU

4096、5120、6144、7168、8192、9216、10240、11264、12288、13312、14336、15360、16384 MiB

4 vCPU

8192、9216、10240、11264、12288、13312、14336、15360、16384、17408、18432、19456、20480、21504、22528、23552、24576、25600、26624、27648、28672、29696、30720 MiB

タイプ = 「vCPU」

ジョブ用に予約された vCPU の数。このパラメータは、Docker Remote APIコンテナの作成セクションの CpuShares にマップされ、--cpu-shares オプションは docker run にマップされます。各 vCPU は 1,024 個の CPU 配分に相当します。EC2 リソースを実行しているジョブの場合、少なくとも 1 つの vCPU を指定する必要があります。これは必須ですが、複数の場所で指定できます。各ノードに少なくとも 1 回指定する必要があります。

Fargate リソースで実行されているジョブの場合、value はサポートされている値のいずれかに一致し、MEMORY 値は VCPU 値でサポートされている値のいずれかである必要があります。サポートされている値は 0.25、0.5、1、2、4 です。

Type: 文字列

: 必須 はい、resourceRequirementsが用いられる。

secrets

環境変数として公開されるジョブのシークレット。詳細については、「機密データの指定」を参照してください。

"secrets": [ { "name": "secretName1", "valueFrom": "secretArn1" }, { "name": "secretName2", "valueFrom": "secretArn2" } ... ]

Type: オブジェクト配列

: 必須 なし

name

シークレットを含む環境変数の名前。

Type: 文字列

: 必須 はい、secretsが用いられる。

valueFrom

コンテナに公開するシークレット。サポートされている値は、Secrets Manager シークレットの完全な ARN または SSN パラメータストア内のパラメータの完全な ARN のいずれかです。

注記

起動するジョブと同じリージョンに SSM Parameter Store の パラメータが存在する場合は、パラメータの完全な ARN または名前のどちらも使用できます。パラメータが別のリージョンに存在する場合は、完全な ARN を指定する必要があります。

Type: 文字列

: 必須 はい、secretsが用いられる。

ulimits

コンテナで設定する ulimits 値のリスト。このパラメータは、Docker Remote API コンテナの作成セクションの Ulimits にマップされ、--ulimit オプションは docker run にマップされます。

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

Type: オブジェクト配列

: 必須 なし

name

ulimittype

Type: 文字列

: 必須 はい、ulimitsが用いられる。

hardLimit

ulimit タイプのハード制限。

Type: 整数

: 必須 はい、ulimitsが用いられる。

softLimit

ulimit タイプのソフト制限。

Type: 整数

: 必須 はい、ulimitsが用いられる。

user

コンテナ内で使用するユーザー名。このパラメータは、Docker Remote API コンテナの作成セクションの User にマップされ、--user オプションは docker run にマップされます。

"user": "string"

Type: 文字列

: 必須 なし

vcpus

このパラメータは廃止されました。代わりに [resourceRequirements] を使用してください。

コンテナ用に予約された vCPU の数。

[resourceRequirements] の使い方の一例として、ジョブ定義に次のような行が含まれている場合は、次のようになります。

"containerProperties": { "vcpus": 2 }

[resourceRequirements] を使用した同等のラインは以下の通りです。

"containerProperties": { "resourceRequirements": [ { "type": "VCPU", "value": "2" } ] }

Type: 整数

: 必須 はい

volumes

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

"volumes": [ { "name": "string", "host": { "sourcePath": "string" }, "efsVolumeConfiguration": { "authorizationConfig": { "accessPointId": "string", "iam": "string" }, "fileSystemId": "string", "rootDirectory": "string", "transitEncryption": "string", "transitEncryptionPort": number } } ]
name

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

Type: 文字列

: 必須 なし

host

host パラメータの内容により、データボリュームがホストコンテナインスタンスで保持されるかどうか、保持される場合はその場所が決まります。host パラメータが空の場合は、Docker デーモンによってデータボリュームのホストパスが割り当てられます。ただし、関連付けられたコンテナが実行を停止した後も、データが保持されるという保証はありません。

注記

このパラメータは、Fargate リソースで実行されているジョブには適用されないため、提供できません。

Type: オブジェクト

: 必須 なし

sourcePath

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

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

Type: 文字列

: 必須 なし

efsVolumeConfiguration

このパラメータは、タスクストレージに Amazon Elastic File System を使用している場合に指定します。詳細については、「Amazon EFS ボリューム」を参照してください。

Type: オブジェクト

: 必須 なし

authorizationConfig

Amazon EFS ファイルシステムに対する認可設定の詳細。

Type: 文字列

: 必須 なし

accessPointId

使用する Amazon EFS アクセスポイントの ID。アクセスポイントを指定した場合、[EFSVolumeConfiguration] で指定されているルートディレクトリの値を省略するか、[/] に設定する必要があります。これにより、EFS アクセスポイントに設定されたパスが強制されます。アクセスポイントを使用する場合は、EFSVolumeConfiguration で転送中の暗号化を有効にする必要があります。詳細については、Amazon Elastic ファイルシステムユーザーガイドの「Amazon EFS アクセスポイントの使用」を参照してください。

Type: 文字列

: 必須 なし

iam

Amazon EFS ファイルシステムのマウント時にジョブ定義で定義した AWS Batch ジョブの IAM ロールを使用するかどうかを指定します。使用する場合は、[EFSVolumeConfiguration] で転送中の暗号化を有効にする必要があります。このパラメータを省略すると、[DISABLED] のデフォルト値が使用されます。詳細については、「Amazon EFS アクセスポイントの使用」を参照してください。

Type: 文字列

有効な値: ENABLED | DISABLED

: 必須 なし

fileSystemId

使用する Amazon EFS ファイルシステムの ID。

Type: 文字列

: 必須 なし

rootDirectory

ホスト内にルートディレクトリとしてマウントする Amazon EFS ファイルシステム内のディレクトリ。このパラメータを省略すると、Amazon EFS ボリュームのルートが使用されます。[/] を指定すると、このパラメータを省略した場合と同じ結果になります。最大長は 4,096 文字です。

重要

[authorizationConfig] に EFS アクセスポイントを指定する場合は、ルートディレクトリパラメータを省略するか、または [/] に設定する必要があります。これにより、Amazon EFS アクセスポイントに設定されているパスが強制されます。

Type: 文字列

: 必須 なし

transitEncryption

Amazon ECS ホストと Amazon EFS サーバー間で Amazon EFS データの転送中の暗号化を有効にするかどうかを指定します。Amazon EFS IAM 認証を使用する場合は、転送中の暗号化を有効にする必要があります。このパラメータを省略すると、[DISABLED] のデフォルト値が使用されます。詳細については、Amazon Elastic File System ユーザーガイドの「Encrypting data in transit」を参照してください。

Type: 文字列

有効な値: ENABLED | DISABLED

: 必須 なし

transitEncryptionPort

Amazon ECS ホストと Amazon EFS サーバーとの間で、暗号化されたデータを送信するときに使用するポート。転送中の暗号化ポートを指定しないと、Amazon EFS マウントヘルパーが使用するポート選択方式が使用されます。この値は 0~65,535 の範囲の値にする必要があります。詳細については、[Amazon Elastic File System User Guide] (Amazon Elastic File System ユーザーガイド) の[EFS Mount Helper] (EFS マウントヘルパー) を参照してください。

Type: 整数

: 必須 なし

ノードプロパティ

nodeProperties

マルチノードの並列ジョブ定義を登録する場合、ノードプロパティの一覧を指定する必要があります。これらのノードプロパティは、ジョブで使用するノード数、主要なノードのインデックスおよび使用する別のノード範囲を定義する必要があります。ジョブを Fargate リソースで実行する場合は、[nodeProperties] を指定することはできません。代わりに、[containerProperties] を使用する必要があります。ジョブ定義では、以下のノードプロパティを使用できます。詳細については、「マルチノードの並列ジョブ」を参照してください。

Type: NodeProperties対象

: 必須 なし

mainNode

複数ノードの並列ジョブの主要なノードにノードインデックスを指定します。このノードインデックス値は、ノード数未満である必要があります。

Type: 整数

: 必須 はい

numNodes

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

Type: 整数

: 必須 はい

nodeRangeProperties

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

Type: 配列のNodeRangePropertyオブジェクト

: 必須 はい

targetNodes

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

Type: 文字列

: 必須 なし

container

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

Type: ContainerProperties対象

: 必須 なし

再試行戦略

retryStrategy

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

Type: RetryStrategy対象

: 必須 なし

attempts

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

"attempts": integer

Type: 整数

: 必須 なし

evaluateOnExit

ジョブの再試行または失敗の条件を指定する、最大 5 つのオブジェクトの配列。このパラメータを指定する場合は、attemptsパラメータも指定する必要があります。もしevaluateOnExitが指定されているが、どのエントリも一致しない場合、ジョブは再試行されます。

"evaluateOnExit": [ { "action": "string", "onExitCode": "string", "onReason": "string", "onStatusReason": "string" } ]

Type: 配列のEvaluateOnExitオブジェクト

: 必須 なし

action

指定された条件 (onStatusReasononReason および onExitCode)がすべて満たされた場合に実行するアクションを指定します。値は大文字と小文字が区別されません。

Type: 文字列

: 必須 はい

有効な値: RETRY | EXIT

onExitCode

ジョブに対して返された ExitCode の10進表現と照合する glob パターンが含まれています。パターンの最大長は 512 文字です。数字のみを含めることができます。文字や特殊文字を含めることはできません。必要に応じて末尾をアスタリスク (*) にでき、文字列の先頭だけが完全に一致する必要があります。

Type: 文字列

: 必須 なし

onReason

ジョブに対して返された Reason と照合する glob パターンが含まれます。パターンの最大長は 512 文字です。文字、数字、ピリオド (.)、コロン (:)、および空白 (スペースまたはタブを含む) を含めることができます。必要に応じて末尾をアスタリスク (*) にでき、文字列の先頭だけが完全に一致する必要があります。

Type: 文字列

: 必須 なし

onStatusReason

ジョブに対して返された StatusReason と照合する glob パターンが含まれます。パターンの最大長は 512 文字です。文字、数字、ピリオド (.)、コロン (:)、および空白 (スペースまたはタブを含む) を含めることができます。必要に応じて末尾をアスタリスク (*) にでき、文字列の先頭だけが完全に一致する必要があります。

Type: 文字列

: 必須 なし

スケジューリング優先度

schedulingPriority

このジョブ定義で送信されるジョブのスケジューリング優先順位。これは、公平配分ポリシーが適用されたジョブキュー内のジョブにのみ影響します。スケジューリング優先度が高いジョブは、スケジューリング優先度の低いジョブの前にスケジュールされます。

サポートされている最小値は 0 で、サポートされている最大値は 9999 です。

Type: 整数

: 必須 なし

[Tags] (タグ)

tags

ジョブ定義に関連付けるキーバリューペアのタグ。詳細については、「AWS Batch リソースのタグ付け」を参照してください。

Type: 文字列から文字列へのマッピング

: 必須 なし

タイムアウト

timeout

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

Type: JobTimeout対象

: 必須 なし

attemptDurationSeconds

startedAt によって未終了のジョブが終了されるまでの時間 (秒) (ジョブ試行の AWS Batch タイムスタンプから計測)。タイムアウトの最小値は 60 秒です。

Type: 整数

: 必須 なし