作业定义参数 - AWS Batch
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

作业定义参数

作业定义被拆分为四个基本部分:作业定义名称、作业定义的类型、参数替代占位符默认值以及作业的容器属性。

作业定义名称

jobDefinitionName

当您注册作业定义时,需要指定一个名称。最多能包含 128 个字母(大写和小写字母)、数字、连字符和下划线。使用该名称注册的第一个作业定义将获得修订 1。注册到该名称下的任何后续作业定义将被指定增量修订号。

类型:字符串

必需:是

Type

type

当您注册作业定义时,需要指定作业类型。如果作业在 Fargate 资源上运行,则不支持 multinode 。有关多节点并行作业的更多信息,请参阅创建多节点并行作业定义

类型:字符串

有效值: container | multinode

必需:是

Parameters

parameters

当您提交任务时,您可以指定应替换占位符或覆盖默认作业定义参数的参数。作业提交请求中的参数优先于作业定义中的默认值。这意味着,您可以对多个作业使用相同的作业定义,这些作业使用相同的格式,并在提交时以编程方式更改命令中的值。

类型:字符串到字符串映射

必需:否

当您注册作业定义时,可以在作业容器属性的 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

类型:字符串

有效值: EC2 | FARGATE

必需:否

传播标签

propagateTags

指定是否将标签从作业或作业定义传播到相应的Amazon ECS任务。如果未指定任何值,则不会传播标签。标签只能在创建任务时传播到任务。对于名称相同的标签,作业标签的优先级高于作业定义标签。如果作业和作业定义中的组合标签总数超过 50,则作业的 将移至 FAILED 状态。

类型:布尔值

必需:否

容器属性

当您注册作业定义时,必须指定容器属性列表,在置放作业时,需要将这些容器属性传递给容器实例上的 Docker 守护程序。作业定义中允许使用以下容器属性。对于单节点作业,这些容器属性是在作业定义级别设置的。对于多节点并行作业,每个节点组的容器属性是在节点属性级别设置的。

command

传递给容器的命令。此参数将映射到 的 Cmd 部分创建容器中的 Docker Remote APICOMMAND 参数。 docker run有关 Docker CMD 参数的更多信息,请参阅 https://docs.docker.com/engine/reference/builder/#cmd

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

类型:字符串数组

必需:否

environment

要传递给容器的环境变量。此参数将映射到 的 Env 部分创建容器中的 Docker Remote API 和 的 --env docker run 选项。

重要

我们建议您不要对敏感信息(例如凭证数据)使用纯文本环境变量。

注意

环境变量不能以 AWS_BATCH 开头。此命名约定是为 AWS Batch 服务设置的变量保留的。

类型:键/值对的数组

必需:否

name

环境变量的名称。

类型:字符串

必需:当使用 environment 时为必需。

value

环境变量的值。

类型:字符串

必需:当使用 environment 时为必需。

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

当您注册作业定义时,可以指定 IAM 角色。该角色为 Amazon ECS 容器代理提供代表您调用在其关联策略中指定的 API 操作的权限。在 Fargate 资源上运行的作业必须提供执行角色。有关更多信息,请参阅AWS Batch 执行 IAM 角色

类型:字符串

必需:否

fargatePlatformConfiguration

在 Fargate 资源上运行的作业的平台配置。在 EC2 资源上运行的作业不能指定此参数。

类型FargatePlatformConfiguration 对象

必需:否

platformVersion

AWS Fargate 平台版本用于 作业或使用LATEST最近批准的AWS Fargate平台版本。

类型:字符串

默认值: LATEST

必需:否

image

用于启动作业的映像。此字符串将直接传递给 Docker 守护程序。默认情况下,Docker Hub 注册表中的映像可用。您还可以使用 指定其他存储库repository-url/image:tag。 允许最多 255 个字母 (大写和小写字母)、数字、连字符、下划线、冒号、句点、正斜杠和井号。此参数将映射到 的 Image 部分创建容器中的 Docker Remote APIIMAGE 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 上的官方存储库中的映像使用一个名称 (例如,ubuntumongo)。

  • Docker Hub 上其他存储库中的映像通过组织名称 (例如,amazon/amazon-ecs-agent) 进行限定。

  • 其他在线存储库中的映像由域名 (例如,quay.io/assemblyline/ubuntu) 进行进一步限定。

类型:字符串

必需:是

instanceType

要用于多节点并行作业的实例类型。多节点并行作业中的所有节点组必须使用相同的实例类型。此参数对于单节点容器作业或在 Fargate 资源上运行的作业无效。

类型:字符串

必需:否

jobRoleArn

当您注册作业定义时,可以指定 IAM 角色。该角色向作业容器提供权限,以便代表您调用在关联的策略中指定的 API 操作。有关更多信息,请参阅 IAM 中的适用于任务的 Amazon Elastic Container Service Developer Guide 角色

类型:字符串

必需:否

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 }

类型:LinuxParameters 对象

必需:否

devices

映射到容器的设备列表。此参数将映射到 Devices创建容器部分中的 Docker Remote API--devicedocker run 选项。

注意

此参数不适用于在 资源Fargate上运行的作业,不应提供。

类型:设备对象数组

必需:否

hostPath

主机容器实例中可用设备的路径。

类型:字符串

必需:是

containerPath

设备在容器中公开的路径。如果未指定此项,则设备将在与主机路径相同的路径公开。

类型:字符串

必需:否

permissions

容器中设备的权限。如果未指定,则权限设置为 READWRITEMKNOD

类型:字符串数组

必需:否

有效值: READ | WRITE | MKNOD

initProcessEnabled

如果为 true,则在容器内运行 init 进程,转发信号和获得进程。此参数映射到 --initdocker run 选项。 此参数要求您容器实例上的 Docker Remote API 版本为 1.25 或更高。To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep "Server API version"

类型:布尔值

必需:否

maxSwap

作业可以使用的交换内存总量MiB 为单位)。该参数会转换为 docker run--memory-swap 选项,其中,该值为容器内存和 maxSwap 值之和。有关更多信息,请参阅 Docker 文档中的 --memory-swap 详细信息

如果指定 maxSwap 值为 0,则该容器不使用交换。接受的值为 0 或任何正整数。如果省略 maxSwap 参数,则容器将使用其正在运行的容器实例的交换配置。必须为要使用的 maxSwap 参数设置 swappiness 值。

注意

此参数不适用于在 资源Fargate上运行的作业,不应提供。

类型:整数

必需:否

sharedMemorySize

/dev/shm 卷的大小值 (以 MiB 为单位)。此参数会将 --shm-size 选项映射到 docker run

注意

此参数不适用于在 Fargate 资源上运行的作业,不应提供。

类型:整数

必需:否

swappiness

您可以使用它来调整容器的内存交换行为。除非绝对必要,否则swappiness0 会导致不进行交换。值 swappiness 100 会导致页面被非常积极地交换。接受的值为 0100 之间的整数。如果未指定 swappiness 参数,则使用默认值 60。如果没有为 maxSwap指定值,则忽略此参数。如果 maxSwap 设置为 0,则容器不使用交换。此参数会将 --memory-swappiness 选项映射到 docker run

使用每容器交换配置时,请考虑以下事项。

  • 必须在容器实例上启用并分配交换空间才能供容器使用。

    注意

    Amazon ECS 优化AMIs 默认情况下未启用交换。您必须在实例上启用交换才能使用此功能。有关更多信息,请参阅 中的 实例存储交换卷Amazon EC2 用户指南(适用于 Linux 实例)如何使用交换文件分配内存以在 Amazon EC2 实例中用作交换空间?。

  • 只有使用 EC2 资源的作业定义才支持交换空间参数。

  • 如果作业定义中省略了 maxSwapswappiness 参数,则每个容器的swappiness默认值为 60,并且总交换使用量限制为容器内存预留的两倍。

注意

此参数不适用于在 资源Fargate上运行的作业,不应提供。

类型:整数

必需:否

tmpfs

容器路径、挂载选项和大小 tmpfs 挂载。

类型:Tmpfs 对象数组

注意

此参数不适用于在 资源Fargate上运行的作业,不应提供。

必需:否

containerPath

容器中的绝对文件路径,其中 tmpfs 卷已挂载。

类型:字符串

必需:是

mountOptions

列表 tmpfs 卷挂载选项。

有效值defaults:"" | "ro" | " rw" | suidnosuid" dev" | " nodev" | " " exec| " | " | noexec" | " | " syncasyncdirsyncremount| " | " | " mand| " | " | " | " | " nomand| " atimenoatimediratimenodiratimebindrbindunbindablerunbindableprivaterprivatesharedrsharedslaverslaverelatimenorelatimestrictatimenostrictatimemodeuidgidnr_inodesnr_blocksmpol| " | " | " | " | " | " | " | " " " " | "

类型:字符串数组

必需:否

size

的大小MiB 为单位) tmpfs 卷。

类型:整数

必需:是

logConfiguration

作业的日志配置规范。

此参数将映射到 LogConfig创建容器部分中的 Docker Remote API--log-driverdocker run 选项。默认情况下,容器使用与 Docker 守护程序相同的日志记录驱动程序。但是,容器可以通过在容器定义中使用此参数指定日志驱动程序,来使用不同于 Docker 守护程序的日志记录驱动程序。要对容器使用不同的日志记录驱动程序,必须在容器实例上或其他日志服务器上配置日志系统以提供远程日志记录选项。有关不同支持的日志驱动程序选项的更多信息,请参阅 Docker 文档中的配置日志记录驱动程序

注意

AWS Batch 当前支持提供给 Docker 守护程序的一小部分日志记录驱动程序(显示在 LogConfiguration 数据类型中)。

此参数要求您容器实例上的 Docker Remote API 版本为 1.18 或更高。To check the Docker Remote API version on your container instance, log into your container instance and run the following command: 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" } ] } ] }

类型:LogConfiguration 对象

必需:否

logDriver

要用于作业的日志驱动程序。默认情况下, AWS Batch 启用 awslogs 日志驱动程序。为此参数列出的有效值是默认情况下 Amazon ECS 容器代理可与之通信的日志驱动程序。

此参数将映射到 LogConfig创建容器部分中的 Docker Remote API--log-driverdocker run 选项。默认情况下,作业使用 Docker 守护程序所用的同一日志记录驱动程序。但是,作业可以通过在作业定义中使用此参数指定日志驱动程序来使用不同于 Docker 守护程序的日志记录驱动程序。如果要为作业指定另一个日志记录驱动程序,则必须在计算环境中的容器实例上配置日志系统。或者,您应在另一个日志服务器上配置它以提供远程日志记录选项。有关不同支持的日志驱动程序选项的更多信息,请参阅 Docker 文档中的配置日志记录驱动程序

注意

AWS Batch 目前支持 Docker 守护程序可用的一部分日志记录驱动程序。Amazon ECS 容器代理的未来版本中可能会提供其他日志驱动程序。

支持的日志驱动程序为 awslogsfluentdgelfjson-filejournaldlogentries、、 syslogsplunk

注意

在 Fargate 资源上运行的作业仅限于 awslogssplunk 日志驱动程序。

此参数要求您容器实例上的 Docker Remote API 版本为 1.18 或更高。To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep "Server API version"

注意

在容器实例Amazon ECS上运行的 容器代理必须向 环境变量注册该实例上ECS_AVAILABLE_LOGGING_DRIVERS可用的日志记录驱动程序。否则,放置在该实例上的容器将无法使用这些日志配置选项。有关更多信息,请参阅 Amazon ECS 中的 Amazon Elastic Container Service Developer Guide 容器代理配置

awslogs

指定Amazon CloudWatch Logs日志记录驱动程序。有关更多信息,请参阅 Docker 文档中的 使用 awslogs 日志驱动程序Amazon CloudWatch Logs日志记录驱动程序

fluentd

指定 Fluentd 日志记录驱动程序。有关更多信息(包括用法和选项),请参阅 Docker 文档中的 Fluentd 日志记录驱动程序

gelf

指定 Graylog Extended Format (GELF) 日志记录驱动程序。有关更多信息(包括用法和选项),请参阅 Docker 文档中的 Graylog Extended Format 日志记录驱动程序

journald

指定 journald 日志记录驱动程序。有关更多信息(包括用法和选项),请参阅 Docker 文档中的 Journald 日志记录驱动程序

json-file

指定 JSON 文件日志记录驱动程序。有关更多信息(包括用法和选项),请参阅 Docker 文档中的 JSON 文件日志记录驱动程序

splunk

指定 Splunk 日志记录驱动程序。有关更多信息(包括用法和选项),请参阅 Docker 文档中的 Splunk 日志记录驱动程序

syslog

指定 syslog 日志记录驱动程序。有关更多信息(包括用法和选项),请参阅 Docker 文档中的 Syslog 日志记录驱动程序

类型:字符串

必需:是

有效值: awslogs | fluentd | gelf | journald | json-file | splunk | | syslog

注意

如果您有之前未列出的要与 Amazon ECS 容器代理一起使用的自定义驱动程序,则可以复制 GitHubAmazon ECS 上提供的 容器代理项目并对其进行自定义以与该驱动程序一起使用。我们鼓励您针对要包含的更改提交提取请求。但是, Amazon Web Services 目前不支持运行此软件的修改后副本的 。

options

记录要发送到作业的日志驱动程序的配置选项。

此参数要求您容器实例上的 Docker Remote API 版本为 1.19 或更高。

类型:字符串到字符串映射

必需:否

secretOptions

一个对象,表示要传递到日志配置的密钥。有关更多信息,请参阅指定敏感数据

类型:对象数组

必需:否

name

要在作业中设置的日志驱动程序选项的名称。

类型:字符串

必需:是

valueFrom

要向容器的日志配置公开的密钥的 ARN。支持的值为 Secrets Manager 密钥的完整 ARN 或 SSM Parameter Store 中的参数的完整 ARN。

注意

如果 SSM Parameter Store 参数存在于要启动的任务所在的区域中,则可以使用参数的完整 ARN 或名称。如果参数存在于不同的区域,则必须指定完整的 ARN。

类型:字符串

必需:是

memory

资源上运行的作业不再Fargate支持此参数。请改用 ResourceRequirement。对于在未使用 的 EC2 资源上运行的作业ResourceRequirement,为作业预留的内存 MiB 数。对于其他任务,请参阅resourceRequirements。如果您的容器尝试超出此处指定的内存,则会停止容器。此参数将映射到 的 Memory 部分创建容器中的 Docker Remote API 和 的 --memory docker run 选项。您必须为任务指定至少 4 MiB 内存。这是必需的,但可以在多个位置为多节点并行 (MNP) 作业指定。必须至少为每个节点指定一次。

注意

如果您尝试通过为作业提供尽可能多的内存来为特定实例类型最大程度地提高资源利用率,请参阅计算资源内存管理

类型:整数

必需:是

mountPoints

您的容器中数据卷的挂载点。此参数将映射到 的 Volumes 部分创建容器中的 Docker Remote API 和 的 --volume docker run 选项。

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

类型:对象数组

必需:否

sourceVolume

要挂载的卷的名称。

类型:字符串

必需:当使用 mountPoints 时为必需。

containerPath

容器上挂载主机卷的路径。

类型:字符串

必需:当使用 mountPoints 时为必需。

readOnly

如果此值为 true,则容器具有对卷的只读访问权。如果此值为 false,则容器可对卷进行写入。

类型:布尔值

必需:否

默认值:False

networkConfiguration

在 Fargate 资源上运行的作业的网络配置。在 EC2 资源上运行的作业不能指定此参数。

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

类型:对象数组

必需:否

assignPublicIp

指示作业是否应该具有公有 IP 地址。如果作业需要出站网络访问,则这是必需的。

类型:字符串

有效值: ENABLED | DISABLED

必需:否

默认值: DISABLED

privileged

当此参数为 true 时,将对此容器提供对主机容器实例的提升的权限(类似于 root 用户)。此参数将映射到 的 Privileged 部分创建容器中的 Docker Remote API 和 的 --privileged docker run 选项。此参数不适用于在 Fargate 资源上运行的作业,不应提供,也不应指定为 false。

"privileged": true|false

类型:布尔值

必需:否

readonlyRootFilesystem

当此参数为 true 时,将对此容器提供对其根文件系统的只读访问权。此参数将映射到 的 ReadonlyRootfs 部分创建容器中的 Docker Remote API 和 的 --read-only docker run 选项。

"readonlyRootFilesystem": true|false

类型:布尔值

必需:否

resourceRequirements

要分配给容器的资源的类型和数量。支持的资源包括 GPUMEMORYVCPU

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

类型:对象数组

必需:否

type

要分配给资源的容器的类型。支持的资源包括 GPUMEMORYVCPU

类型:字符串

必需:当使用 resourceRequirements 时为必需。

value

要为容器预留的指定资源的数量。这些值根据 type 指定的不同而有所不同。

type="GPU"

要为容器预留的物理 GPU 数。为作业中的所有容器预留的 GPU 数不应超过启动作业的计算资源上的可用 GPU 数。

type="MEMORY"

要提供给容器的内存的硬限制(以 MiB 为单位)。如果您的容器尝试使用超出此处指定的内存,该容器将被终止。此参数将映射到 Memory创建容器部分中的 Docker Remote API--memorydocker run 选项。您必须为任务指定至少 4 MiB 内存。这是必需的,但可以在多个位置为多节点并行 (MNP) 作业指定。必须为每个节点至少指定一次它。此参数将映射到 Memory创建容器部分中的 Docker Remote API--memorydocker run 选项。

注意

如果您尝试通过为作业提供尽可能多的内存来为特定实例类型最大程度地提高资源利用率,请参阅计算资源内存管理

对于在 Fargate 资源上运行的作业, value 必须与支持的值之一匹配。此外,VCPU值必须是该内存值支持的值之一。

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、2552、2556、25600、2624、27648、28672、29696 和 30720 MiB

type="VCPU"

为作业预留的 vCPU 的数量。此参数将映射到 CpuShares创建容器部分中的 Docker Remote API--cpu-sharesdocker run 选项。每个 vCPU 相当于 1024 个 CPU 份额。对于在 EC2 资源上运行的作业,您必须指定至少一个 vCPU。这是必需的,但可以在多个位置指定。必须为每个节点指定至少一次。

对于在 Fargate 资源上运行的作业, value 必须与支持的值之一匹配,并且MEMORY该值必须是该 VCPU 值支持的值之一。支持的值为 0.25、0.5、1、2 和 4。

类型:字符串

必需:当使用 resourceRequirements 时为必需。

secrets

显示为环境变量的作业的密钥。有关更多信息,请参阅指定敏感数据

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

类型:对象数组

必需:否

name

包含密钥的环境变量的名称。

类型:字符串

必需:当使用 secrets 时为必需。

valueFrom

要向容器公开的密钥。支持的值为 Secrets Manager 密钥的完整 ARN 或 SSM Parameter Store 中的参数的完整 ARN。

注意

如果 SSM Parameter Store 参数存在于要启动的作业所在的区域中,则可以使用参数的完整 ARN 或名称。如果参数存在于不同的区域,则必须指定完整的 ARN。

类型:字符串

必需:当使用 secrets 时为必需。

ulimits

要在容器中设置的 ulimits 值的列表。此参数将映射到 的 Ulimits 部分创建容器中的 Docker Remote API 和 的 --ulimit docker run 选项。

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

类型:对象数组

必需:否

name

typeulimit

类型:字符串

必需:当使用 ulimits 时为必需。

hardLimit

ulimit 类型的硬限制。

类型:整数

必需:当使用 ulimits 时为必需。

softLimit

ulimit 类型的软限制。

类型:整数

必需:当使用 ulimits 时为必需。

user

要在容器内使用的用户名。此参数将映射到 的 User 部分创建容器中的 Docker Remote API 和 的 --user docker run 选项。

"user": "string"

类型:字符串

必需:否

vcpus

为容器预留的 vCPU 的数量。此参数将映射到 的 CpuShares 部分创建容器中的 Docker Remote API 和 的 --cpu-shares docker run 选项。每个 vCPU 相当于 1024 个 CPU 份额。您必须指定至少一个 vCPU。这是必需的,但可以在多个位置为多节点并行 (MNP) 作业指定。必须为每个节点指定至少一次。在 Fargate 资源上运行的作业必须使用 指定作业的 vCPU 要求resourceRequirements。其他作业可以使用 指定作业的 vCPU 要求resourceRequirements

类型:整数

必需:是

volumes

当您注册作业定义时,可以指定需传递给容器实例上的 Docker 守护程序的卷的列表。容器属性中允许以下参数:

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

卷的名称。最多能包含 255 个字母 (大写和小写字母)、数字、连字符和下划线。此名称已在容器定义 sourceVolumemountPoints 参数中引用。

类型:字符串

必需:否

host

host 参数的内容确定您的数据卷是否一直保存在主机容器实例上以及存储它的位置上。如果 host 参数为空,则 Docker 守护程序将为您的数据卷分配一个主机路径。但是,在与其关联的容器停止运行后,不保证数据将保留。

注意

此参数不适用于在 资源Fargate上运行的作业,不应提供。

类型:对象

必需:否

sourcePath

向容器提供的主机容器实例上的路径。如果此参数为空,则 Docker 守护程序将为您分配一个主机路径。

如果 host 参数包含 sourcePath 文件位置,则数据卷将在主机容器实例上的指定位置保留,除非您手动将其删除。如果主机容器实例上不存在 sourcePath 值,则 Docker 守护程序会创建它。如果该位置不存在,则将导出源路径文件夹的内容。

类型:字符串

必需:否

efsVolumeConfiguration

当您将 文件系统用于任务存储时,将Amazon Elastic File System指定此参数。有关更多信息,请参阅 中的Amazon EFS卷AWS Batch 用户指南

类型:对象

必需:否

authorizationConfig

Amazon EFS 文件系统的授权配置详细信息。

类型:字符串

必需:否

accessPointId

要使用的Amazon EFS访问点 ID。如果指定了访问点,则必须忽略在 EFSVolumeConfiguration中指定的根目录值或将其设置为 / 。这将强制实施在 EFS 访问点上设置的路径。如果使用访问点,则必须在 EFSVolumeConfiguration 中启用传输加密。有关更多信息,请参阅 中的使用 Amazon Elastic File System 用户指南Amazon EFS 访问点

类型:字符串

必需:否

iam

确定是否在挂载AWS Batch文件系统时使用Amazon EFS作业定义中定义的作业 IAM 角色。如果启用,则必须在 EFSVolumeConfiguration 中启用传输加密。如果忽略此参数,将使用 DISABLED 的默认值。有关更多信息,请参阅 中的Amazon EFS使用访问点AWS Batch 用户指南

类型:字符串

有效值: ENABLED | DISABLED

必需:否

fileSystemId

要使用的 Amazon EFS 文件系统 ID。

类型:字符串

必需:否

rootDirectory

Amazon EFS 文件系统中要作为主机内的根目录挂载的目录。如果省略此参数,Amazon EFS则使用卷的根目录。如果您指定 / ,则它具有与忽略此参数相同的效果。最大长度为 4,096 个字符。

重要

如果在 中指定了 EFS 访问点authorizationConfig,则必须省略根目录参数或将其设置为 / 。这将强制实施在访问点上Amazon EFS设置的路径。

类型:字符串

必需:否

transitEncryption

确定是否在Amazon EFS主机和Amazon ECS服务器之间启用传输Amazon EFS中的数据加密。如果使用 Amazon EFS IAM 授权,则必须启用传输加密。如果忽略此参数,将使用 DISABLED 的默认值。有关更多信息,请参阅 中的https://docs.amazonaws.cn/efs/latest/ug/encryption-in-transit.html加密传输中的数据Amazon Elastic File System 用户指南

类型:字符串

有效值: ENABLED | DISABLED

必需:否

transitEncryptionPort

在 Amazon ECS 主机和 Amazon EFS 服务器之间发送加密数据时使用的端口。如果您未指定中转加密端口,它将使用Amazon EFS挂载帮助程序使用的端口选择策略。该值必须介于 0 到 65535 之间。有关更多信息,请参阅 中的 EFS Amazon Elastic File System 用户指南挂载帮助程序

类型:整数

必需:否

节点属性

nodeProperties

注册多节点并行作业定义时,必须指定节点属性的列表。这些节点属性应定义要在作业中使用的节点数量、主节点索引以及要使用的不同节点范围。如果作业在 Fargate 资源上运行,则无法指定 nodeProperties。相反,您应改containerProperties用 。作业定义中允许使用以下节点属性。有关更多信息,请参阅多节点并行作业

类型:NodeProperties 对象

必需:否

mainNode

指定多节点并行作业的主节点的节点索引。此节点索引值必须小于节点数。

类型:整数

必需:是

numNodes

与多节点并行作业关联的节点数。

类型:整数

必需:是

nodeRangeProperties

与多节点并行作业关联的节点范围及其属性的列表。

类型:NodeRangeProperty 对象的数组

必需:是

targetNodes

节点范围(使用节点索引值)。范围 0:3 表示索引值为 03 的节点。如果省略起始范围值 (:n),则使用 0 开始范围。如果省略结束范围值 (n:),则使用可能的最高节点索引结束范围。您的累积节点范围必须考虑所有节点 (0:n)。您可以嵌套节点范围,例如 0:104:5 。在这种情况下4:5,范围属性会覆盖 0:10 属性。

类型:字符串

必需:否

container

节点范围的容器详细信息。有关更多信息,请参阅容器属性

类型:ContainerProperties 对象

必需:否

重试策略

retryStrategy

在注册作业定义时,针对使用此作业定义提交的失败作业,您可以选择性地指定要用于这些作业的重试策略。SubmitJob 操作期间指定的任何重试策略将覆盖此处定义的重试策略。默认情况下,每个任务尝试一次。如果您指定了多个尝试,则在失败时,将重试作业。失败尝试的示例包括作业返回非零退出代码或终止容器实例。有关更多信息,请参阅自动作业重试

类型:RetryStrategy 对象

必需:否

attempts

让作业进入 RUNNABLE 状态的次数。您可以指定 1 到 10 之间的尝试次数。如果 attempts 大于 1,则当实例失败时将重试多次,直到它进入 RUNNABLE 状态。

"attempts": integer

类型:整数

必需:否

evaluateOnExit

最多由 5 个对象组成的数组,指定了应在哪些条件下重试作业或作业失败。如果指定了此参数,则还必须指定 attempts 参数。

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

类型EvaluateOnExit 对象的数组

必需:否

action

指定在满足所有指定条件(onStatusReasononReasononExitCode)时要执行的操作。这些值不区分大小写。

类型:字符串

必需:是

有效值: RETRY | EXIT

onExitCode

包含 Glob 模式以与为作业返回ExitCode的 的十进制表示形式匹配。模式的长度最多为 512 个字符。它只能包含数字。它不能包含字母或其他特殊字符。它可以选择以星号 (*) 结束,这样只有字符串的开头需要完全匹配。

类型:字符串

必需:否

onReason

包含 Glob 模式以与为作业返回Reason的 匹配。模式的长度最多为 512 个字符。它可以包含字母、数字、句点 (.)、冒号 (:) 和空格 (空格、制表符)。它可以选择以星号 (*) 结束,这样只有字符串的开头需要完全匹配。

类型:字符串

必需:否

onStatusReason

包含 Glob 模式以与为作业返回StatusReason的 匹配。模式的长度最多为 512 个字符。它可以包含字母、数字、句点 (.)、冒号 (:) 和空格 (空格、制表符)。它可以选择以星号 (*) 结尾,以便只有字符串的开头才需要完全匹配。

类型:字符串

必需:否

Tags

tags

要与作业定义关联的键值对标签。有关更多信息,请参阅标记 AWS Batch 资源

类型:字符串到字符串映射

必需:否

Timeout

timeout

您可以为任务配置超时时间,以便在某个任务运行的时间超过超时时间时让 AWS Batch 终止该任务。有关更多信息,请参阅作业超时。如果任务因超时而终止,则不会重试。在 SubmitJob 操作期间指定的任何超时配置将覆盖此处定义的超时配置。有关更多信息,请参阅作业超时

类型:JobTimeout 对象

必需:否

attemptDurationSeconds

startedAt 终止未完成作业后的持续时间(以秒为单位,根据作业尝试的AWS Batch时间戳测得)。超时时间的最小值为 60 秒。

类型:整数

必需:否