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

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

Job 定义参数

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

Job 定义名称

jobDefinitionName

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

类型: String

:必需 是

Type

type

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

类型: String

有效值: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被指定。

类型: String

有效值:EC2 | FARGATE

:必需 否

传播标记

propagateTags

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

类型: Boolean

:必需 否

容器属性

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

command

传递给容器的命令。此参数可将Cmd中的创建容器的 部分Docker 远程 APICOMMAND对于是必需的docker run. 有关 Docker CMD 参数的更多信息,请参阅 https://docs.docker.com/engine/reference/builder/#cmd

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

类型: 字符串数组

:必需 否

environment

要传递给容器的环境变量。此参数可将Env中的创建容器的 部分Docker 远程 API--env选项设置为docker run.

重要

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

注意

环境变量不能以AWS_BATCH. 此命名约定是为通过Amazon Batch服务。

类型: 键/值对的数组

:必需 否

name

环境变量的名称。

类型: String

:必需 是的,environment使用。

value

环境变量的值。

类型: String

:必需 是的,environment使用。

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

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

类型: String

:必需 否

fargatePlatformConfiguration

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

类型: FargatePlatformConfiguration对象

:必需 否

platformVersion

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

类型: String

默认值:LATEST

:必需 否

image

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

类型: String

:必需 是

instanceType

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

类型: String

:必需 否

jobRoleArn

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

类型: String

:必需 否

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 远程 API--device选项设置为码头运行.

注意

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

类型: 数组设备objects

:必需 否

hostPath

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

类型: String

:必需 是

containerPath

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

类型: String

:必需 否

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"

类型: Boolean

:必需 否

maxSwap

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

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

注意

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

类型: 整数

:必需 否

sharedMemorySize

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

注意

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

类型: 整数

:必需 否

swappiness

您可以使用此参数调整容器的内存交换行为。Aswappiness对于是必需的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装载模式。

类型: 数组Tmpfsobjects

注意

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

:必需 否

containerPath

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

类型: String

:必需 是

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

作业的日志配置规范。

此参数可将LogConfig中的创建容器的 部分Docker 远程 API--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 容器代理可与之通信的日志驱动程序。

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

注意

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

支持的日志驱动程序为 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 EFS 代理配置中的Amazon Elastic Container Service 开发指南.

awslogs

指定 Amazon CloudWatch Logs 日志记录驱动程序。有关更多信息,请参阅 。使用 awslogs 日志驱动程序Amazon CloudWatch Logs 记录驱动程序在 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 日志记录驱动程序

类型: String

:必需 是

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

注意

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

options

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

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

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

:必需 否

secretOptions

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

类型:对象数组

:必需 否

name

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

类型: String

:必需 是

valueFrom

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

注意

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

类型: String

:必需 是

memory

此参数已被弃用,请使用resourceRequirementsNalue.

为作业预留的 MiB 内存数。

作为如何使用resourceRequirements,如果您的作业定义包含类似于以下行:

"containerProperties": { "memory": 512 }

等效行使用resourceRequirements将如下。

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

类型: 整数

:必需 是

mountPoints

您的容器中数据卷的挂载点。此参数可将Volumes中的创建容器的 部分Docker 远程 API--volume选项设置为docker run.

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

类型: 对象数组

:必需 否

sourceVolume

要挂载的卷的名称。

类型: String

:必需 是的,当mountPoints使用。

containerPath

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

类型: String

:必需 是的,当mountPoints使用。

readOnly

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

类型: Boolean

:必需 否

默认值:False

networkConfiguration

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

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

类型: 对象数组

:必需 否

assignPublicIp

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

类型: String

有效值:ENABLED | DISABLED

:必需 否

默认值:DISABLED

privileged

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

"privileged": true|false

类型: Boolean

:必需 否

readonlyRootFilesystem

当此参数为 true 时,将对此容器提供对其根文件系统的只读访问权。此参数可将ReadonlyRootfs中的创建容器的 部分Docker 远程 API--read-only选项设置为docker run.

"readonlyRootFilesystem": true|false

类型: Boolean

:必需 否

resourceRequirements

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

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

类型: 对象数组

:必需 否

type

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

类型: String

:必需 是的,当resourceRequirements使用。

value

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

type="GPU"

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

type="MEMORY"

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

注意

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

对于在 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、4096、4096、254096、4096、4096、4096、164096、164096、4096、4096、4096、164096、164096、164096、164096、164096、16696、4096、4096、4096、4096、4096、4096、4096、4096、4096、4096、4096、

4 vCPU

8192、9216、9216、9216、9216、9216、1640696、1622406224069406940622406940696、2040696、16222240696、20406999999999222222222406666666666222222222222222222222222222222222222222222221699999999999922222222222222222222222222222222

type="VCPU"

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

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

类型: String

:必需 是的,当resourceRequirements使用。

secrets

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

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

类型: 对象数组

:必需 否

name

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

类型: String

:必需 是的,当secrets使用。

valueFrom

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

注意

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

类型: String

:必需 是的,当secrets使用。

ulimits

要在容器中设置的 ulimits 值的列表。此参数可将Ulimits中的创建容器的 部分Docker 远程 API--ulimit选项设置为docker run.

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

类型: 对象数组

:必需 否

name

ulimittype

类型: String

:必需 是的,当ulimits使用。

hardLimit

ulimit 类型的硬限制。

类型: 整数

:必需 是的,当ulimits使用。

softLimit

ulimit 类型的软限制。

类型: 整数

:必需 是的,当ulimits使用。

user

要在容器内使用的用户名。此参数可将User中的创建容器的 部分Docker 远程 API--user选项设置为docker run.

"user": "string"

类型: String

:必需 否

vcpus

此参数已弃用,请使用resourceRequirementsNalue.

为容器预留的 vCPU 的数量。

作为如何使用resourceRequirements,如果您的作业定义包含类似于以下行:

"containerProperties": { "vcpus": 2 }

等效行使用resourceRequirements将如下。

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

类型: 整数

:必需 是

volumes

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

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

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

类型: String

:必需 否

host

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

注意

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

类型: 对象

:必需 否

sourcePath

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

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

类型: String

:必需 否

efsVolumeConfiguration

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

类型: 对象

:必需 否

authorizationConfig

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

类型: String

:必需 否

accessPointId

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

类型: String

:必需 否

iam

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

类型: String

有效值:ENABLED | DISABLED

:必需 否

fileSystemId

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

类型: String

:必需 否

rootDirectory

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

重要

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

类型: String

:必需 否

transitEncryption

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

类型: String

有效值:ENABLED | DISABLED

:必需 否

transitEncryptionPort

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

类型: 整数

:必需 否

节点属性

nodeProperties

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

类型: NodeProperties对象

:必需 否

mainNode

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

类型: 整数

:必需 是

numNodes

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

类型: 整数

:必需 是

nodeRangeProperties

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

类型: 数组NodeRangePropertyobjects

:必需 是

targetNodes

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

类型: String

:必需 否

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

类型: 数组EvaluateOnExitobjects

:必需 否

action

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

类型: String

:必需 是

有效值:RETRY | EXIT

onExitCode

包含 glob 模式,要与ExitCode这是返回的工作。模式最多可包含 512 个字符。它只能包含数字。它不能包含字母或特殊字符。它可以选择以星号 (*) 结束,这样只有字符串的开头需要完全匹配。

类型: String

:必需 否

onReason

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

类型: String

:必需 否

onStatusReason

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

类型: String

:必需 否

Tags

tags

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

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

:必需 否

Timeout

timeout

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

类型: JobTimeout对象

:必需 否

attemptDurationSeconds

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

类型: 整数

:必需 否