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

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

计算环境参数

计算环境拆分为 5 个基本组成部分:计算环境的名称、类型和状态,计算资源定义(如果计算环境为托管计算环境)以及服务角色(用于向 AWS Batch 提供 IAM 权限)。

计算环境名称

computeEnvironmentName

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

类型: 字符串

:必需 是

Type

type

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

类型: 字符串

有效值:MANAGED|UNMANAGED

:必需 是

State

state

计算环境的状态。

如果状态为ENABLED,AWS Batch 计划程序会尝试将任务置放在环境中。这些作业来自计算资源上的关联作业队列。如果计算环境是托管计算环境,则此环境可根据作业队列需求,自动向外扩展或缩减其实例。

如果状态为DISABLED时,AWS Batch 计划程序不会尝试将任务置放在环境中。处于 STARTINGRUNNING 状态的作业将继续正常运行。处于 DISABLED 状态的托管计算环境无法向外扩展。但是,在实例空闲后,它们会扩展到满足minvCpus值。

类型: 字符串

有效值:ENABLED|DISABLED

:必需 否

计算资源

computeResources

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

类型: ComputeResourceobject

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

type

计算环境的类型。您可以选择使用 EC2 按需实例 (EC2)和 EC2 Spot 实例(SPOT),或者使用 Fargate 容量(FARGATE)和 Fargate 点容量(FARGATE_SPOT)。如果选择 SPOT,则还必须使用 spotIamFleetRole 参数指定 Amazon EC2 Spot 队列角色。有关更多信息,请参阅 Amazon EC2 Spot 队列角色

有效值:EC2|SPOT|FARGATE|FARGATE_SPOT

:必需 是

allocationStrategy

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

注意

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

BEST_FIT(默认值)

AWS Batch 会选择最适合作业要求的实例类型,并优先考虑成本最低的实例类型。若已选实例类型无更多可用的实例,AWS Batch 将等待到其可用为止。如果没有足够的可用实例,或者您正在点击Amazon EC2 服务限制,则在当前正在运行的作业完成之前,其他作业才会运行。此分配策略可降低成本,但会限制扩展。如果您将竞价型队列与BEST_FIT,则必须指定 Spot 队列 IAM 角色。

BEST_FIT_PROGRESSIVE

使用足够大的、能够满足队列中作业要求的额外实例类型,并优先选择每单位 vCPU 成本更低的实例类型。如果以前选择的实例类型无更多实例可用,AWS Batch 将选择新的实例类型。

SPOT_CAPACITY_OPTIMIZED

(仅适用于 Spot 实例计算资源)使用足够大的、能够满足队列中作业要求的额外实例类型,并优先选择不太可能会中断的实例类型。

与这两者的BEST_FIT_PROGRESSIVESPOT_CAPACITY_OPTIMIZED策略,AWS Batch 可能需要超出maxvCpus以满足您的容量要求。在这种情况下,AWS Batch 永远不会超过 maxvCpus 一个实例。

有效值:BEST_FIT|BEST_FIT_PROGRESSIVE|SPOT_CAPACITY_OPTIMIZED

:必需 否

minvCpus

环境应保留的 Amazon EC2 vCPUs 的最小数量(即使计算环境处于状态)DISABLED)。

注意

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

类型: 整数

:必需 是

maxvCpus

环境可达到的最大 Amazon EC2 vCPU 数。

注意

使用这两种 BEST_FIT_PROGRESSIVESPOT_CAPACITY_OPTIMIZED 分配策略,AWS Batch 可能需要超出 maxvCpus 以满足您的容量要求。在这种情况下,AWS Batch 永远不会超过 maxvCpus 一个实例。例如,AWS Batch 仅在计算环境中指定的实例中使用一个实例。

类型: 整数

:必需 是

desiredvCpus

计算环境中所需的 Amazon EC2 vCPU 数。AWS Batch 根据作业队列需求,将此值修改为介于最小值和最大值之间。

注意

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

类型: 整数

:必需 否

instanceTypes

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

注意

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

注意

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

类型: 字符串数组

必需:是

imageId

此参数已被弃用。

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

注意

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

注意

您为计算环境选择的 AMI 必须与您打算用于该计算环境的实例类型的架构匹配。例如,如果您的计算环境使用 A1 实例类型,则您选择的计算资源 AMI 必须支持 ARM 实例。Amazon ECS 同时提供经过 Amazon ECS 优化的 Amazon Linux 2 AMI 的 x86 和 ARM 版本。有关更多信息,请参阅 。Amazon ECS 优化 Amazon Linux 2 AMI中的Amazon Elastic Container Service Spot 开发人

类型: 字符串

:必需 否

subnets

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

类型: 字符串数组

:必需 是

securityGroupIds

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

类型: 字符串数组

:必需 是

ec2KeyPair

用于计算环境中启动的实例的 EC2 key pair。您可以使用此密钥对通过 SSH 登录您的实例。

注意

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

类型: 字符串

:必需 否

instanceRole

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

类型: 字符串

:必需 否

tags

要应用于计算环境中启动的 EC2 实例的键值对标签。例如,您可以指定 "Name": "AWS Batch Instance - C4OnDemand" 作为标签,以便计算环境中的每个实例均具有此名称。这有助于在 Amazon EC2 控制台中识别您的 AWS Batch 实例。创建计算环境后,无法更新或删除这些标签。任何更改都需要创建新的计算环境并删除以前的计算环境。使用 AWS Batch 时,无法看到这些标签ListTagsForResourceAPI 操作。

注意

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

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

:必需 否

placementGroup

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

类型: 字符串

:必需 否

bidPercentage

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

注意

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

:必需 否

spotIamFleetRole

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

注意

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

重要

要在创建时标记 Spot 实例,此处指定的 Spot 队列 IAM 角色必须使用较新的 AmazonEC2SpotFleetTaggingRole 托管策略。以前推荐的 AmazonEC2SpotFleetRole 托管策略不具有标记 Spot 实例所需的权限。有关更多信息,请参阅 在创建时未标记的 Spot 实例

类型: 字符串

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

launchTemplate

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

类型: LaunchTemplateSpecification

object

:必需 否

launchTemplateId

启动模板的 ID。

类型: 字符串

:必需 否

launchTemplateName

启动模板的名称。

类型: 字符串

:必需 否

version

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

如果值为 $Latest,则使用启动模板的最新版本。如果值为 $Default,则使用启动模板的默认版本。

重要

创建计算环境后,即使更新启动模板的 $Default$Latest 版本,也不会更改使用的启动模板版本。要使用新的启动模板版本,请创建新的计算环境,将新的计算环境添加到现有作业队列,从作业队列中移除旧的计算环境,然后删除旧的计算环境。

默认值:$Default

类型: 字符串

:必需 否

ec2Configuration

提供用于为 EC2 计算环境中的实例选择 Amazon 系统映像 (AMI) 的信息。如果Ec2Configuration,则默认值为当前Amazon Linux(ECS_AL1),用于非 GPU、非 AWS 引力实例。从 2021 年 3 月 31 日开始,此默认值将更改为Amazon Linux 2(ECS_AL2)。

注意

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

类型: 数组Ec2Configurationobjects

:必需 否

imageIdOverride

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

类型: 字符串

:必需 否

imageType

要与实例类型匹配以选择 AMI 的映像类型。如果imageIdOverride参数,则最近的Amazon ECS 优化 AMI使用。

Amazon Linux 2(ECS_AL2)

所有基于 AWS Graviton 的实例系列的默认值(例如C6gM6gR6g, 和T4g),并且可用于所有非 GPU 实例类型。

Amazon Linux 2 (GPU)(ECS_AL2_NVIDIA)

所有 GPU 实例系列的默认值(例如P4G4),并且可用于所有非基于 AWS Graviton 的实例类型。

Amazon Linux(ECS_AL1)

所有非 GPU、非 AWS Graviton 实例系列的默认值。亚马逊 Linux 将停止标准支持。有关更多信息,请参阅 Amazon Linux AMI

类型: 字符串

:必需 是

服务角色

serviceRole

允许 AWS Batch 代表您调用其他 AWS 服务的 IAM 角色的完整 Amazon 资源名称 (ARN)。有关更多信息,请参阅 AWS Batch 服务 IAM 角色

重要

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

如果您的指定角色的路径并非 /,则必须指定完整角色 ARN(推荐)或将此路径作为角色名称的前缀。

注意

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

类型: 字符串

:必需 否

Tags

tags

要与计算环境相关联的键值对标签。有关更多信息,请参阅 标记 AWS Batch 资源

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

:必需 否