本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
更新计算环境
创建使用 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
使用参数。
如果计算环境使用由imageId
、imageIdOverride
,或者launchTemplate
参数,并且您希望使用支持的最新 Amazon ECS 优化 AMIAmazon Batch,更新必须删除提供 AMI ID 的设置。适用于imageId
,这需要为该参数指定一个空字符串。适用于imageIdOverride
,这需要为ec2Configuration
参数。
如果 AMI ID 来自启动模板,则有两种方法可以更改为支持的最新 Amazon ECS 优化 AMIAmazon Batch.
-
通过为
launchTemplateId
要么launchTemplateName
参数。这将删除整个启动模板,而不仅仅是 AMI ID。 -
如果启动模板的更新版本未指定 AMI ID,则
updateToLatestImageVersion
参数必须设置为true
.