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

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

Job 定义参数

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

Job 定义名称

jobDefinitionName

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

类型: 字符串

:必需 是

类型

type

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

类型: 字符串

有效值:container | multinode

:必需 是

参数

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

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

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

类型: 字符串数组

:必需 否

environment

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

重要

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

注意

环境变量不能从开始AWS_BATCH. 此命名约定是为由Amazon Batch服务。

类型: 键/值对的数组

:必需 否

name

环境变量的名称。

类型: 字符串

:必需 是什么时候environment已使用。

value

环境变量的值。

类型: 字符串

:必需 是什么时候environment已使用。

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

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

类型: 字符串

:必需 否

fargatePlatformConfiguration

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

类型: FargatePlatformConfiguration宾语

:必需 否

platformVersion

这些区域有:AmazonFargate 平台版本用于作业,或LATEST使用最近批准的版本AmazonFargate 平台。

类型: 字符串

默认值:LATEST

:必需 否

image

用于开始作业的映像。此字符串将直接传递给 Docker 守护程序。默认情况下,Docker Hub 注册表中的映像可用。您也可以使用 repository-url/image:tag 指定其他存储库。允许最多 255 个字母(大写和小写字母)、数字、连字符、下划线、冒号、句点、正斜杠和井号。此参数可映射到 Docker Remote API创建容器部分中的 Imagedocker runIMAGE 参数。

注意

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 Hub 上的官方存储库中的映像使用一个名称 (例如,ubuntumongo)。

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

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

类型: 字符串

:必需 是

instanceType

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

类型: 字符串

:必需 否

jobRoleArn

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

类型: 字符串

:必需 否

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

映射到容器的设备列表。此参数将映射到 Docker Remote APICreate a container(创建容器)部分中的 Devices 以及 docker run--device 选项。

注意

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

类型: 数组设备对象

:必需 否

hostPath

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

类型: 字符串

:必需 是

containerPath

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

类型: 字符串

:必需 否

permissions

容器中设备的权限。如果未指定,则将权限设置为。READWRITE, 和MKNOD.

类型: 字符串数组

:必需 否

有效值:READ |WRITE |MKNOD

initProcessEnabled

如果为 true,则在容器内运行 init 进程,转发信号和获得进程。此参数会将 --init 选项映射到 docker run。此参数要求您容器实例上的 Docker Remote API 版本为 1.25 或更高版本。要检查您的容器实例上的 Docker Remote API 版本,请登录到容器实例并运行以下命令:sudo docker version | grep "Server API version"

类型: 布尔值

:必需 否

maxSwap

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

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

注意

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

类型: 整数

:必需 否

sharedMemorySize

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

注意

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

类型: 整数

:必需 否

swappiness

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

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

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

    注意

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

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

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

注意

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

类型: 整数

:必需 否

tmpfs

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

类型: 数组Tmpfs对象

注意

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

:必需 否

containerPath

容器中的绝对文件路径,tmpfs已装入卷。

类型: 字符串

:必需 是

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"

类型: 字符串数组

:必需 否

size

的大小(以 MiB 为单位)tmpfs体积。

类型: 整数

:必需 是

logConfiguration

作业的日志配置规范。

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

注意

Amazon 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" } ] } ] }

类型: LogConfiguration宾语

:必需 否

logDriver

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

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

注意

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

支持的日志驱动程序为 awslogsfluentdgelfjson-filejournaldlogentriessyslogsplunk

注意

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

此参数要求您容器实例上的 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 Container Server 开发者指南.

awslogs

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

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 容器代理一起使用的自定义驱动程序,则可使 Amazon ECS 容器代理项目分支。在 GitHub 上提供然后自定义它以与该驱动程序配合使用。我们鼓励您针对要包含的更改提交提取请求。但是,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

已弃用此参数,请使用resourceRequirements相反。

为作业预留的 MiB 内存数。

作为如何使用的示例resourceRequirements,如果你的作业定义包含类似于这样的行:

"containerProperties": { "memory": 512 }

使用的等效行resourceRequirements如下所示。

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

类型: 整数

:必需 是

mountPoints

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

"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 用户)。此参数将映射到 Docker Remote API创建容器部分中的 Privileged 以及 docker run--privileged 选项。此参数不适用于在 Fargate 资源上运行的作业,不应提供或指定为 false。

"privileged": true|false

类型: 布尔值

:必需 否

readonlyRootFilesystem

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

"readonlyRootFilesystem": true|false

类型: 布尔值

:必需 否

resourceRequirements

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

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

类型: 对象数组

:必需 否

type

要分配给资源的容器的类型。支持的资源包括 GPUMEMORY、和 VCPU

类型: 字符串

:必需 是什么时候resourceRequirements已使用。

value

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

type="GPU"

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

type="MEMORY"

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

注意

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

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

VCPU MEMORY

0.25 vCPU

2048 MiB、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、10240、11264、1264、13312、14336、15360 和 16384

4 vCPU

18192、9216、1064、1264、12288、13312、15360、16360、16360、17408、17408、18408、18408、18408、18408、18408、18360、18408、18408、18360、18360、17360、17408、18360、17408、18408、18408、18408、18408、18408、18408、18672、30600、30600、28672、30600、28672、30600、28672、30600、28672、30600、28672、30600、28672、30

type="VCPU"

为作业预留的 vCPU 的数量。此参数将映射到 Docker Remote APICreate a container(创建容器)部分中的 CpuShares 以及 docker run--cpu-shares 选项。每个 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 值的列表。此参数将映射到 Docker Remote API创建容器部分中的 Ulimits 以及 docker run--ulimit 选项。

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

类型: 对象数组

:必需 否

name

ulimittype

类型: 字符串

:必需 是什么时候ulimits已使用。

hardLimit

ulimit 类型的硬限制。

类型: 整数

:必需 是什么时候ulimits已使用。

softLimit

ulimit 类型的软限制。

类型: 整数

:必需 是什么时候ulimits已使用。

user

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

"user": "string"

类型: 字符串

:必需 否

vcpus

已弃用此参数,请使用resourceRequirements相反。

为容器预留的 vCPU 的数量。

作为如何使用的示例resourceRequirements,如果你的作业定义包含类似于这样的行:

"containerProperties": { "vcpus": 2 }

使用的等效行resourceRequirements如下所示。

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

类型: 整数

:必需 是

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 参数中引用。

类型: 字符串

:必需 否

host

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

注意

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

类型: 对象

:必需 否

sourcePath

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

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

类型: 字符串

:必需 否

efsVolumeConfiguration

当您使用 Amazon Elastic File System 进行任务存储时,指定此参数。有关更多信息,请参阅 Amazon EFS 卷

类型: 对象

:必需 否

authorizationConfig

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

类型: 字符串

:必需 否

accessPointId

要使用的 Amazon EFS 访问点 ID。如果指定了访问点,则在EFSVolumeConfiguration必须省略或将其设置为/. 这会强制执行在 EFS 接入点上设置的路径。如果使用访问点,则必须在 EFSVolumeConfiguration 中启用传输加密。有关更多信息,请参阅《Amazon Elastic File System 用户指南》中的使用 Amazon EFS 访问点

类型: 字符串

:必需 否

iam

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

类型: 字符串

有效值:ENABLED | DISABLED

:必需 否

fileSystemId

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

类型: 字符串

:必需 否

rootDirectory

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

重要

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

类型: 字符串

:必需 否

transitEncryption

确定是否对 Amazon ECS 主机和 Amazon EFS 服务器之间传输的 Amazon EFS 数据启用加密。如果使用 Amazon EFS IAM 授权,则必须启用传输加密。如果忽略此参数,将使用默认值 DISABLED。有关更多信息,请参阅 。对传输中的数据加密中的Amazon Elastic File System 用户指南.

类型: 字符串

有效值:ENABLED | DISABLED

:必需 否

transitEncryptionPort

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

类型: 整数

:必需 否

节点属性

nodeProperties

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

类型: NodeProperties宾语

:必需 否

mainNode

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

类型: 整数

:必需 是

numNodes

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

类型: 整数

:必需 是

nodeRangeProperties

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

类型: 数组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 个字符。可以包含字母、数字、句点 (.)、冒号 (:) 和空格(空格、制表符)。它可以选择以星号 (*) 结束,这样只有字符串的开头需要完全匹配。

类型: 字符串

:必需 否

计划优先级

schedulingPriority

使用此作业定义提交的作业的调度优先级。这只会影响具有公平份额政策的工作队列中的工作。调度优先级较高的作业将在调度优先级较低的作业之前安排。

支持的最小值为 0,支持的最大值为 9999。

类型: 整数

:必需 否

标签

tags

要与作业定义关联的键/值对标签。有关更多信息,请参阅 给您的 Amazon Batch 资源加标签

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

:必需 否

Timeout

timeout

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

类型: JobTimeout宾语

:必需 否

attemptDurationSeconds

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

类型: 整数

:必需 否