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

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

更新计算环境

创建使用 EC2 资源的计算环境后,您可以直接更新计算环境的许多设置。但是,更改某些设置需要将计算环境中的实例替换为Amazon Batch.

使用 Fargate 资源的计算环境仅支持更新安全组(securityGroupIds) 和 VPC 子网 (subnets)。

Amazon Batch有两个更新机制。第一个是扩展更新,其中将实例添加到计算环境中或从计算环境中删除。第二个是基础架构更新,计算环境中的实例将被替换。这比扩展更新需要长得多的时间。

如果你用更新计算环境Amazon Batch,你改变仅限这些设置导致扩展更新: 所需的 vCPUs (desiredvCpus),最大 vCPUs (maxvCpus),最低 vCPUs (minvCpus)、服务角色(serviceRole) 和状态 (state)。

如果更改以下任意设置在UpdateComputeEnvironmentAPI 操作,Amazon Batch启动基础架构更新。基础架构更新要求将服务角色设置为AWSServiceRoleForBatch(默认设置),而且分配策略是BEST_FIT_PROGRESSIVE要么SPOT_CAPACITY_OPTIMIZED(BEST_FIT不支持)。也可以更改为扩展更新而更改的任何设置为了基础架构更新(服务角色除外)).

在基础架构更新期间,计算环境的状态更改为UPDATING. N启动新实例使用已更新设置. N新的工作将开始安排在新的实例。当前正在运行的作业是根据基础架构更新策略调度的 (updatePolicy) 设置在UpdateComputeEnvironmentAPI 操作。如果在更新时终止作业 (terminateJobsOnUpdate) 设置为true,正在运行的作业将终止并可能会在更新的计算环境中重试,具体取决于作业的重试设置。(默认情况下,不会重试作业。) 否则,允许他们运行直到作业执行超时中设置的超时时间(以分钟为单位)jobExecutionTimeoutMinutes) 已过去(默认情况下为 30 分钟。) 随着计算环境中的容量变得可用(所需的 vCPUs 低于最大 vCPUs 至少与最小实例类型所需的 vCPUs 数量相同),新实例将使用更新的设置启动,并在新实例上启动作业。由于所有作业都在使用旧设置的实例上完成,旧实例将被终止。

以下是启动基础架构更新的设置(如果发生更改):

  • 分配策略 (allocationStrategy,必须是BEST_FIT_PROGRESSIVE要么SPOT_CAPACITY_OPTIMIZED. 如果原来的分配策略是BEST_FIT,不支持基础设施更新。)

  • 出价百分比(bidPercentage

  • EC2 配置(ec2Configuration

  • 密钥对 (ec2KeyPair

  • 映像 ID (imageId

  • 实例角色 (instanceRole

  • 实例类型 (instanceTypes

  • 启动模板 (launchTemplate

  • 置放群组 (placementGroup

  • 安全组(securityGroupIds

  • VPC 子网 (subnets

  • EC2 标签 (tags

  • 计算环境类型 (type,可以是其中的一个EC2要么SPOT

  • 是否更新到支持的最新 AMIAmazon Batch更新基础设施期间updateToLatestImageVersion

更新 AMI ID

进行基础设施更新时,用于计算环境的 AMI ID 可能会被更改。这取决于是否在三种设置中的任何一种设置中指定 AMI-imageId(在computeResources),或imageIdOverride(在ec2Configuration),以及在中指定的启动模板launchTemplate. 如果在这些设置中没有指定 AMI ID,则updateToLatestImageVersion设置为true支持的最新 Amazon ECS 优化 AMIAmazon Batch用于任何基础架构更新。

如果在这些设置中至少有一个指定了 AMI ID,则更新取决于在更新之前提供的 AMI ID 提供的设置。创建计算环境时,选择 AMI ID 的优先级是首先启动模板,然后是imageId设置,最后imageIdOverride设置。但是,如果使用的 AMI ID 来自启动模板,请更新imageId要么imageIdOverride设置不会更新 AMI ID。更新从启动模板中选择的 AMI ID 的唯一方法是更新启动模板。如果启动模板的版本参数为$Default要么$Latest,将评估指定启动模板的默认或最新版本。如果启动模板的默认版本或最新版本选择了不同的 AMI ID,则会在更新中使用它。

如果启动模板未用于选择 AMI ID,则在imageId要么imageIdOverride使用参数。如果两者都已指定,则在imageIdOverride使用参数。

如果计算环境使用由imageIdimageIdOverride,或者launchTemplate参数,并且您希望使用支持的最新 Amazon ECS 优化 AMIAmazon Batch,更新必须删除提供 AMI ID 的设置。适用于imageId,这需要为该参数指定一个空字符串。适用于imageIdOverride,这需要为ec2Configuration参数。

如果 AMI ID 来自启动模板,则有两种方法可以更改为支持的最新 Amazon ECS 优化 AMIAmazon Batch.

  • 通过为launchTemplateId要么launchTemplateName参数。这将删除整个启动模板,而不仅仅是 AMI ID。

  • 如果启动模板的更新版本未指定 AMI ID,则updateToLatestImageVersion参数必须设置为true.