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

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

计算环境参数

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

计算环境名称

computeEnvironmentName

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

类型: 字符串

:必需 是

类型

type

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

类型: 字符串

有效值:MANAGED | UNMANAGED

:必需 是

州/省

state

计算环境的状态。

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

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

类型: 字符串

有效值: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分配策略不支持基础设施更新,也无法更新某些参数。有关更多信息,请参阅 更新计算环境

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 Linux 2 AMI 优化的 Amazon Linux 2 AMI 的 x86 和 ARM 版本。有关更多信息,请参阅 。Amazon ECS 优化的 Amazon ECS Amazon Linux 2 AMI中的Amazon Elastic Container Service 开发指南.

类型: 字符串

:必需 否

subnets

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

更新计算环境时,如果您提供了 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 key pair。您可以使用此密钥对通过 SSH 登录您的实例。更新计算环境时,如果您更改 EC2 key pair,则需要对计算环境进行基础设施更新。有关更多信息,请参阅 更新计算环境

注意

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

类型: 字符串

:必需 否

instanceRole

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

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

类型: 字符串

:必需 否

tags

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

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

注意

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

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

:必需 否

placementGroup

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

注意

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

类型: 字符串

:必需 否

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计算环境。

launchTemplate

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

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

类型:LaunchTemplateSpecification

object

:必需 否

launchTemplateId

启动模板的 ID。

类型: 字符串

:必需 否

launchTemplateName

启动模板的名称。

类型: 字符串

:必需 否

version

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

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

默认值: $Default

类型: 字符串

:必需 否

ec2Configuration

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

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

注意

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

类型: 数组Ec2Configuration对象

:必需 否

imageIdOverride

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

类型: 字符串

:必需 否

imageType

要与实例类型匹配以选择 AMI 的映像类型。如果imageIdOverride最近未指定参数。Amazon ECS 优化的 AMI已使用。如果在更新操作中指定了新的映像类型,但都没有imageId也不是imageIdOverride参数在更新中指定,然后为支持的映像类型的最新 Amazon ECS 优化 AMIAmazon Batch已使用。

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

类型: 字符串

:必需 是

服务角色

serviceRole

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

重要

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

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

如果你指定的角色有以外的路径/,请确保指定完整角色 ARN(推荐)或将路径作为角色名称的前缀。

注意

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

类型: 字符串

:必需 否

标签

tags

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

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

:必需 否