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

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

计算环境参数

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

计算环境名称

computeEnvironmentName

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

类型: String

:必需 是

Type

type

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

类型: String

有效值:MANAGED | UNMANAGED

:必需 是

State

state

计算环境的状态。

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

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

类型: String

有效值:ENABLED | DISABLED

:必需 否

计算资源

computeResources

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

类型: ComputeResource对象

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

type

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

有效值:EC2 | SPOT | FARGATE | FARGATE_SPOT

:必需 是

allocationStrategy

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

注意

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

BEST_FIT (默认值)

Amazon Batch选择最适合作业要求的实例类型,并优先选择成本最低的实例类型。如果选定实例类型无更多可用,Amazon Batch等待其他实例可用。如果没有足够的实例可用,或者你正在击中Amazon EC2 服务限制那么在当前正在运行的作业完成之前,其他作业才会运行。此分配策略可降低成本,但会限制扩展。如果你使用 Spot FleetsBEST_FIT则必须指定 Spot 队列 IAM 角色。

BEST_FIT_PROGRESSIVE

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

SPOT_CAPACITY_OPTIMIZED

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

这两者的BEST_FIT_PROGRESSIVESPOT_CAPACITY_OPTIMIZED策略,Amazon Batch可能需要超过maxvCpus以满足您的容量要求。在这种情况下,Amazon 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分配策略,Amazon Batch可能需要超过maxvCpus以满足您的容量要求。在这种情况下,Amazon Batch永不会超过maxvCpus超过一个实例。例如,Amazon Batch在计算环境中指定的实例中,只使用一个实例。

类型: 整数

:必需 是

desiredvCpus

计算环境中所需的 Amazon EC2 vCPU 数。Amazon 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 开发指南.

类型: String

:必需 否

subnets

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

类型: 字符串数组

:必需 是

securityGroupIds

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

类型: 字符串数组

:必需 是

ec2KeyPair

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

注意

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

类型: String

:必需 否

instanceRole

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

类型: String

:必需 否

tags

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

注意

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

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

:必需 否

placementGroup

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

类型: String

:必需 否

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 实例

类型: String

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

launchTemplate

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

类型: LaunchTemplateSpecification

object

:必需 否

launchTemplateId

启动模板的 ID。

类型: String

:必需 否

launchTemplateName

启动模板的名称。

类型: String

:必需 否

version

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

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

重要

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

默认值: $Default.

类型: String

:必需 否

ec2Configuration

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

注意

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

类型: 的数组Ec2Configurationobjects

:必需 否

imageIdOverride

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

类型: String

:必需 否

imageType

要与实例类型匹配以选择 AMI 的映像类型。如果imageIdOverride参数未指定,然后是最近的亚马逊 ECS 优化了 AMI已使用。

Amazon Linux 2(ECS_AL2

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

Amazon Linux 2 (GPU)(ECS_AL2_NVIDIA

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

Amazon Linux(ECS_AL1

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

类型: String

:必需 是

服务角色

serviceRole

允许的 IAM 角色的完整 Amazon Resource Name (ARN)。Amazon Batch对于是必需的Amazon服务代表您。有关更多信息,请参阅Amazon Batch服务 IAM 角色

重要

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

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

注意

取决于你是如何创建Amazon Batch服务角色,其 ARN 可能包含service-role路径前缀。如果仅指定服务角色的名称,Amazon Batch假设你的 ARN 不使用service-role路径前缀。因此,我们建议您在创建计算环境时指定服务角色的完整 ARN。

类型: String

:必需 否

Tags

tags

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

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

:必需 否