计算环境参数 - Amazon Batch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

计算环境参数

计算环境分为几个基本组件:计算环境的名称、类型和状态、计算资源定义(如果是托管计算环境)、Amazon EKS 配置(如果使用 Amazon EKS 资源)、用于向其提供 IAM 权限的服务角色以及计算环境的标签。Amazon Batch

计算环境名称

computeEnvironmentName

您的计算环境的名称。名称的长度最多可为 128 个字符。可以包含大小写字母、数字、连字符(-)和下划线(_)。

类型:字符串

必需:是

类型

type

计算环境的类型。选择Amazon Batch管理MANAGED您定义的 EC2 或 Fargate 计算资源。有关更多信息,请参阅计算资源:选择管理UNMANAGED您自己的 EC2 计算资源。

类型:字符串

有效值:MANAGED | UNMANAGED

必需:是

状态

state

计算环境的状态。

如果状态为ENABLED,则Amazon Batch调度程序会尝试在环境中放置作业。这些作业来自计算资源上的关联作业队列。如果对计算环境进行管理,则实例会根据作业队列需求自动向外扩展或向内扩展。

如果状态为DISABLED,则Amazon Batch调度程序不会尝试在环境中放置作业。处于STARTINGRUNNING状态的作业将继续正常进行。处于该DISABLED状态的托管计算环境不会向外扩展。

注意

某个DISABLED州的计算环境可能会继续产生计费费用。为防止产生额外费用,请关闭计算环境,然后将其删除。有关更多信息,请参阅 DeleteComputeEnvironmentAmazon BatchAPI 参考和Amazon Billing用户指南中的避免意外费用

当实例处于空闲状态时,该实例会向下扩展到该minvCpus值。但是,实例大小不会改变。例如,假设一个值为4minvCpus值为desiredvCpusc5.8xlarge实例36。此实例不会缩减为c5.large实例。

类型:字符串

有效值:ENABLED | DISABLED

必需:否

计算资源

computeResources

由计算环境托管的计算资源的详细信息。有关更多信息,请参阅计算环境

类型:ComputeResource 对象

必需:此参数是托管计算环境的必需参数

type

计算环境的类型。您可以选择使用 EC2 按需实例 (EC2) 和 EC2 竞价型实例 (SPOT),也可以在托管计算环境中使用 Fargate 容量 (FARGATE) 和 Fargate Spot 容量 (FARGATE_SPOT)。如果选择 SPOT,则还必须使用 spotIamFleetRole 参数指定 Amazon EC2 Spot 队列角色。有关更多信息,请参阅亚马逊 EC2 现货队列的角色

有效值:EC2 | SPOT | FARGATE | FARGATE_SPOT

必需:是

allocationStrategy

如果无法分配足够的最适合 EC2 实例类型的实例,则用于计算资源的分配策略。这可能是因为Amazon Web Services 区域或 Amazon EC2 服务限制中实例类型的可用性。有关更多信息,请参阅分配策略

注意

此参数不适用于在 Fargate 资源上运行的任务。

BEST_FIT (默认值)

Amazon Batch选择最适合任务需求的实例类型,并优先选择成本最低的实例类型。如果选定实例类型没有额外实例可用,Amazon Batch 将等待额外实例可用。如果没有足够的可用实例,或者您已达到 Amazon EC2 服务限制,则其他任务要等到当前正在运行的任务完成后才会运行。此分配策略可降低成本,但会限制扩展。如果您使用的是竞价队列BEST_FIT,则必须指定竞价队列 IAM 角色。使用BEST_FIT分配策略的计算资源不支持基础架构更新,也无法更新某些参数。有关更多信息,请参阅更新计算环境

注意

BEST_FIT不支持使用 Amazon EKS 资源的计算环境。

BEST_FIT_PROGRESSIVE

使用足够大以满足队列中作业要求的其他实例类型。首选每个单元 vCPU 成本较低的实例类型。如果先前选定的实例类型的其他实例不可用,请Amazon Batch选择新的实例类型。

SPOT_CAPACITY_OPTIMIZED

(仅适用于竞价型实例计算资源)使用大到足以满足队列中作业要求的其他实例类型。首选不太可能被中断的实例类型。

如果BEST_FIT_PROGRESSIVESPOT_CAPACITY_OPTIMIZED策略都使用按需实例或竞价型实例,而BEST_FIT策略使用竞价型实例,Amazon Batch则可能需要超过容量maxvCpus才能满足您的容量需求。在这种情况下,Amazon Batch 永远不会超过一个实例 maxvCpus

有效值:BEST_FIT |BEST_FIT_PROGRESSIVE |SPOT_CAPACITY_OPTIMIZED

必需:否

minvCpus

即使计算环境是,环境也要维护的最少 vCPU 数量。DISABLED

注意

此参数不适用于在 Fargate 资源上运行的任务。

类型:整数

必需:否

maxvCpus

Amazon Batch计算环境可以支持的最大 vCPU 数量。

注意

如果BEST_FIT_PROGRESSIVESPOT_CAPACITY_OPTIMIZED分配策略都使用按需实例或竞价型实例,而BEST_FIT策略使用竞价型实例,Amazon Batch则可能需要超过容量maxvCpus才能满足您的容量需求。在这种情况下,Amazon Batch 永远不会超过一个实例 maxvCpus。例如,在您的计算环境中指定的实例中Amazon Batch使用的实例不超过一个实例。

类型:整数

必需:否

desiredvCpus

计算环境中所需的 vCPU 数量。 Amazon Batch根据作业队列需求在最小值和最大值之间修改此值。

注意

此参数不适用于在 Fargate 资源上运行的任务。

类型:整数

必需:否

instanceTypes

可以启动的实例类型。此参数不适用于在 Fargate 资源上运行的任务。不要指定。您可以指定实例系列来启动这些系列中的任何实例类型(例如c5c5n、或p3)。或者,您可以指定一个系列中的特定尺寸(例如c5.8xlarge)。请注意,金属实例类型不在实例系列中(例如,c5不包括c5.metal。) 还可以通过选择 optimal 来选择符合作业队列需求的实例类型(从 C4、M4 和 R4 实例系列中)。

注意

在创建一个计算环境时,为该计算环境选择的实例类型必须共享同一架构。例如,您不能在同一个计算环境中混用 x86 和 ARM 实例。

注意

目前,optimal 使用 C4、M4 和 R4 实例系列中的实例类型。如果Amazon Web Services 区域没有来自这些实例系列的实例类型,则使用 C5、M5 和 R5 实例系列的实例类型。

类型:字符串数组

必需:是

imageId

此参数已过时。

用于计算环境中启动的实例的 Amazon 系统映像 (AMI) ID。此参数被 Ec2Configuration 结构的 imageIdOverride 成员覆盖。

注意

此参数不适用于在 Fargate 资源上运行的任务。

注意

您为计算环境选择的 AMI 必须与您要用于该计算环境的实例类型的架构相匹配。例如,如果您的计算环境使用A1实例类型,则您选择的计算资源 AMI 必须支持Arm实例。亚马逊 ECS 同时出售亚马逊 ECS 优化的 Amazon Linux 2 AMI 的Arm版本x86和版本。有关更多信息,请参阅亚马逊弹性容器服务开发人员指南中的亚马逊 ECS 优化的 A mazon Linux 2 AMI

类型:字符串

必需:否

subnets

计算资源在其中启动的 VPC 子网。这些子网必须位于同一 VPC 中。Fargate 计算资源最多可以包含 16 个子网。有关更多信息,请参阅 Amazon VPC 用户指南 中的 VPC 和子网

注意

Amazon EC2 上的 Amazon Batch 和 Amazon EKS 上的 Amazon Batch 支持 Local Zones。有关更多信息,请参阅 Amazon EKS 用户指南中的 Linux 实例的 Amazon EC2 用户指南、Amazon EK S 和Amazon本地区域中的本地区域,以及本地区域、波长区域中的 Amazon ECS 集群以及Amazon Outposts亚马逊弹性容器服务开发人员指南

Fargate 上的 Amazon Batch 目前不支持 Local Zones。

更新计算环境时,如果您提供空的 VPC 子网列表,则生成的行为在 Fargate 和 EC2 计算资源之间会有所不同。对于 Fargate 计算资源,如果提供空列表,则会像未指定此参数一样处理,并且不进行任何更改。对于 EC2 计算资源,提供空列表会将 VPC 子网从计算资源中删除。如果您更改 VPC 子网,则需要更新计算环境的基础设施。Fargate 和 EC2 计算资源都是如此。有关更多信息,请参阅更新计算环境

类型:字符串数组

必需:是

securityGroupIds

与计算环境中启动的实例关联的 Amazon EC2 安全组。必须在 securityGroupIds 中或使用 launchTemplate 中引用的启动模板指定一个或多个安全组。此参数是在 Fargate 资源上运行的任务所必需的,并且必须包含至少一个安全组。(Fargate 不支持启动模板。) 如果同时使用 securityGroupIdslaunchTemplate 指定安全组,将使用 securityGroupIds 中的值。

更新计算环境时,如果您提供的安全组列表为空,则生成的行为在 Fargate 和 EC2 计算资源之间会有所不同。对于 Fargate 计算资源,如果提供空列表,则会像未指定此参数一样处理,并且不进行任何更改。对于 EC2 计算资源,提供空列表会将安全组从计算资源中删除。如果您更改安全组,则需要更新计算环境的基础架构。Fargate 和 EC2 计算资源都是如此。有关更多信息,请参阅更新计算环境

类型:字符串数组

必需:是

ec2KeyPair

用于在计算环境中启动的实例的 EC2 密钥对。您可以使用此密钥对通过 SSH 登录您的实例。更新计算环境时,如果您更改 EC2 密钥对,则需要更新计算环境的基础设施。有关更多信息,请参阅更新计算环境

注意

此参数不适用于在 Fargate 资源上运行的任务。

类型:字符串

必需:否

instanceRole

在计算环境中附加到亚马逊 EC2 实例的亚马逊 ECS 实例配置文件。此参数不适用于在 Fargate 资源上运行的任务。不要指定。您可以为实例配置文件指定短名称或完整的 Amazon 资源名称 (ARN)。例如,ecsInstanceRolearn:aws:iam::aws_account_id:instance-profile/ecsInstanceRole。有关更多信息,请参阅Amazon ECS 实例角色

更新计算环境时,如果您更改此设置,则需要更新计算环境的基础架构。有关更多信息,请参阅更新计算环境

类型:字符串

必需:否

tags

键值对标签将应用于在计算环境中启动的 EC2 实例。例如,您可以指定 "Name": "Amazon Batch Instance - C4OnDemand" 作为标签,以便计算环境中的每个实例均具有此名称。这对于在 Amazon EC2 控制台中识别您的 Amazon Batch 实例很有用。使用 Amazon Batch ListTagsForResourceAPI 操作时看不到这些标签。

更新计算环境时,如果您更改 EC2 标签,则需要更新计算环境的基础设施。有关更多信息,请参阅更新计算环境

注意

此参数不适用于在 Fargate 资源上运行的任务。

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

必需:否

placementGroup

要与计算资源关联的 Amazon EC2 置放群组。此参数不适用于在 Fargate 资源上运行的任务。不要指定。如果您打算向计算环境提交多节点并行作业,请考虑创建集群置放群组并将其与您的计算资源相关联。这会保证实例逻辑分组上的多节点并行作业位于单个可用区中,同时提供较高的网络流量潜力。有关更多信息,请参阅 Amazon EC2 Linux 实例用户指南中的置放群组

注意

此参数不适用于在 Fargate 资源上运行的任务。

类型:字符串

必需:否

bidPercentage

EC2 竞价型实例价格与实例启动前该实例类型的按需价格进行比较时可以达到的最大百分比。例如,如果您的最大百分比为 20%,则竞价价格必须低于该 EC2 实例当前按需价格的 20%。您始终支付最低 (市场) 价格,并且绝不会高于您的最大百分比。如果将此字段留空,则默认值为按需价格的 100%。对于大多数使用案例,我们建议将此字段留空。

更新计算环境时,如果您更改出价百分比,则需要更新计算环境的基础架构。有关更多信息,请参阅更新计算环境

注意

此参数不适用于在 Fargate 资源上运行的任务。

必需:否

spotIamFleetRole

应用于 SPOT 计算环境的 Amazon EC2 Spot 队列 IAM 角色的 Amazon 资源名称 (ARN)。如果将分配策略设置为 BEST_FIT,或者未指定分配策略,则需要使用该角色。有关更多信息,请参阅亚马逊 EC2 现货队列的角色

注意

此参数不适用于在 Fargate 资源上运行的任务。

重要

要在创建时标记您的竞价型实例,此处指定的竞价型队列 IAM 角色必须使用较新的 A mazonEC2 SpotFleetTaggingRole 托管策略。之前推荐的 AmazonEC2 SpotFleetRole 托管策略不具有标记竞价型实例所需的权限。有关更多信息,请参阅Spot 实例在创建时未加标签

类型:字符串

必需:此参数对于 SPOT 计算环境是必需的。

launchTemplate

要与计算资源关联的可选启动模板。此参数不适用于在 Fargate 资源上运行的任务。不要指定。您在CreateComputeEnvironmentUpdateComputeEnvironmentAPI 操作中指定的任何其他计算资源参数都会覆盖启动模板中的相同参数。要使用启动模板,您必须在请求中指定启动模板 ID 或启动模板名称,但不能同时指定两者。有关更多信息,请参阅启动模板支持

更新计算环境时,要删除自定义启动模板并使用默认启动模板,请将启动模板规范的launchTemplateIdlaunchTemplateName成员设置为空字符串。从计算环境中删除启动模板并不会删除启动模板中指定的 AMI(如果使用的是启动模板)。要更新从启动模板中选择的 AMI,必须将updateToLatestImageVersion参数设置为true。更新计算环境时,如果您更改启动模板,则需要更新计算环境的基础架构。有关更多信息,请参阅更新计算环境

类型:LaunchTemplateSpecification

object

必需:否

launchTemplateId

启动模板的 ID。

类型:字符串

必需:否

launchTemplateName

启动模板的名称。

类型:字符串

必需:否

version

启动模板的版本号,$Latest$Default

如果值为 $Latest,则使用启动模板的最新版本。如果值为 $Default,则使用启动模板的默认版本。在基础架构更新期间,如果为计算环境指定了$Latest$Default,则会Amazon Batch重新评估启动模板版本,并可能使用启动模板的不同版本。即使更新中未指定启动模板,也是如此。

默认值:$Default

类型:字符串

必需:否

ec2Configuration

提供用于为 EC2 计算环境中的实例选择 Amazon 系统映像 (AMI) 的信息。如果Ec2Configuration未指定,则默认为亚马逊 Linux 2 (ECS_AL2)。2021 年 3 月 31 日之前,非 GPU、非 G Amazon raviton 实例的默认值为亚马逊 Linux (ECS_AL1)。

更新计算环境时,如果您更改此参数,则需要更新计算环境的基础架构。有关更多信息,请参阅更新计算环境

注意

此参数不适用于在 Fargate 资源上运行的任务。

类型:Ec2Configuration 对象数组

必需:否

imageIdOverride

用于在计算环境中启动的与映像类型匹配的实例的 AMI ID。此设置会覆盖 computeResource 对象中的 imageId 集。

类型:字符串

必需:否

imageKubernetesVersion

计算环境的Kubernetes版本。如果您未指定值,则将使用 Amazon Batch 支持的最新版本。

类型:字符串

长度限制:最小长度为 1。长度上限为 256。

必需:否

imageType

要与实例类型匹配以选择 AMI 的映像类型。ECSEKS 资源的受支持值不同。

ECS

如果未指定 imageIdOverride 参数,则使用最近的经过 Amazon ECS 优化的 Amazon Linux 2 AMIECS_AL2)。如果在更新中指定了新映像类型,但未指定 imageIdimageIdOverride 参数,则使用 Amazon Batch 支持的为该映像类型提供的最新的经 Amazon ECS 优化 AMI。

ECS_AL2

Amazon Linux 2:所有非 GPU 实例系列的默认值。

ECS_AL2_NVIDIA

Amazon Linux 2(GPU):所有 GPU 实例系列(例如 P4G4)的默认值,可用于所有非基于 Amazon Graviton 的实例类型。

ECS_AL1

Amazon Linux。亚马逊 Linux 已达到标准支持nd-of-life的水平。有关更多信息,请参阅 Amazon Linux AMI

EKS

如果未指定 imageIdOverride 参数,则使用最近的 Amazon EKS 优化版 Amazon Linux AMI (EKS_AL2)。如果在更新中指定了新映像类型,但未指定 imageIdimageIdOverride 参数,则使用 Amazon Batch 支持的该映像类型的最新 Amazon EKS 优化版 AMI。

EKS_AL2

Amazon Linux 2:所有非 GPU 实例系列的默认值。

EKS_AL2_NVIDIA

Amazon Linux 2(加速版):所有 GPU 实例系列(例如 P4G4)的默认值,可用于所有非基于 Amazon Graviton 的实例类型。

类型:字符串

长度限制:最小长度为 1。长度上限为 256。

必需:是

亚马逊 EKS 配置

支持 Amazon Batch 计算环境的 Amazon EKS 集群的配置。集群必须先存在,才能创建计算环境。

eksClusterArn

Amazon EKS 集群的 Amazon 资源名称(ARN)。示例是 arn:aws:eks:us-east-1:123456789012:cluster/ClusterForBatch

类型:字符串

必需:是

kubernetesNamespace

Amazon EKS 集群的命名空间,Amazon Batch 管理此命名空间中的容器组(pod)。值不能为空或为 null。长度必须少于 64 个字符,不能设置为 default,不能以“kube-”开头,并且必须匹配此正则表达式:^[a-z0-9]([-a-z0-9]*[a-z0-9])?$。有关更多信息,请参阅 Kubernetes 文档中的命名空间

类型:字符串

必需:是

类型:EksConfiguration对象

必需:否

服务角色

serviceRole

允许 Amazon Batch 代表您调用其他 Amazon 服务的 IAM 角色的完整 Amazon 资源名称(ARN)。有关更多信息,请参阅Amazon Batch服务 IAM 角色:我们建议您不要指定服务角色。这样,就Amazon Batch使用AWSServiceRoleForBatch服务相关角色。

重要

如果您的账户已经创建了Amazon Batch服务相关角色 (AWSServiceRoleForBatch),则除非您在此处指定角色,否则该角色将默认用于您的计算环境。如果您的账户中不存在Amazon Batch服务相关角色,并且此处未指定任何角色,则服务会尝试在您的账户中创建Amazon Batch服务相关角色。有关 AWSServiceRoleForBatch 服务相关角色的更多信息,请参阅Amazon Batch 的服务相关角色权限

如果计算环境是使用AWSServiceRoleForBatch服务相关角色创建的,则无法将其更改为使用常规 IAM 角色。同样,如果使用常规 IAM 角色创建计算环境,则无法将其更改为使用AWSServiceRoleForBatch服务相关角色。要更新需要基础架构更新才能更改的计算环境的参数,必须使用AWSServiceRoleForBatch服务相关角色。有关更多信息,请参阅更新计算环境

如果您指定的角色的路径不是路径/,请确保指定完整的角色 ARN(推荐)或在角色名称前面加上路径。

注意

根据您创建Amazon Batch服务角色的方式,其 Amazon 资源名称 (ARN) 可能包含service-role路径前缀。当您仅指定服务角色的名称时,Amazon Batch 假定您的 ARN 不使用 service-role 路径前缀。因此,我们建议您在创建计算环境时指定服务角色的完整 ARN。

类型:字符串

必需:否

标签

tags

与计算环境关联的键值对标签。有关更多信息,请参阅给您的 Amazon Batch 资源加标签

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

必需:否