更新使用自动扩展的终端节点
更新使用自动扩展的终端节点
当您更新端点时,Application Auto Scaling 会检查该端点上的任何模型是否为自动扩缩的目标。如果更新将更改作为自动扩展目标的任何模型的实例类型,则更新将失败。
在 Amazon Web Services Management Console中,您会看到一条警告,指示您必须从自动扩展中取消注册模型,然后才能对其进行更新。如果您试图通过调用UpdateEndpoint
API 来更新终端节点,则调用将失败。在更新端点前,通过调用 DeleteScalingPolicy Application Auto Scaling API 操作,删除为其配置的所有扩展策略,然后调用 DeregisterScalableTarget 以取消注册该变体为可扩展目标。在您更新终端节点后,可以将变体注册为可扩展目标,并将自动扩展策略附加到更新后的变体中。
有一个例外。如果您更改为自动扩缩而配置的变体的模型,Amazon SageMaker 自动扩缩允许更新。这是因为更改模型通常不会影响足够的性能来更改自动扩展行为。如果您确实要更新为自动扩展而配置的变体的模型,请确保对模型的更改不会显著影响性能和自动扩展行为。
更新应用了自动扩缩的 SageMaker 端点时,请完成以下步骤:
更新应用了自动扩展的终端节点
-
通过调用 DeregisterScalableTarget,取消注册该终端节点,使其不再作为可扩展目标。
-
由于在进行更新操作期间(或者如果您在上一步中关闭了自动扩展)会阻止自动扩展,因此,您可能需要采取额外的预防措施,以便在更新期间增加终端节点的实例数量。为此,请通过调用
UpdateEndpointWeightsAndCapacities
,为该终端节点上托管的生产变体增加实例数量。 -
重复调用
DescribeEndpoint
,直到响应的EndpointStatus
字段的值为InService
。 -
调用
DescribeEndpointConfig
来获取当前终端节点配置值。 -
通过调用
CreateEndpointConfig
创建新的终端节点配置。对于要保留现有实例计数或权重的生产变体,请使用在前一步中调用DescribeEndpointConfig
所得到的响应中的相同变体名称。对于所有其他值,请使用在上一步骤中调用DescribeEndpointConfig
时作为响应获取的值。 -
通过调用
UpdateEndpoint
更新终端节点。指定在上一步中创建的终端节点配置作为EndpointConfig
字段。如果要保留变体属性(如实例计数或权重),请将RetainAllVariantProperties
参数的值设置为True
。这会指定具有相同名称的生产变体将使用从调用DescribeEndpoint
得到的响应中的最新DesiredInstanceCount
进行更新,而不考虑新EndpointConfig
中InitialInstanceCount
字段的值。 -
(可选)通过调用 RegisterScalableTarget 重新激活自动扩缩功能。
注意
只有在使用以下更改更新终端节点时,才需要步骤 1 和 7:
-
更改配置了自动扩展的生产变体的实例类型。
-
删除配置了自动扩展的生产变体。
删除为自动扩展配置的终端节点
如果您删除端点,Application Auto Scaling 会检查该端点上是否有任何模型为自动扩展的目标。如果您有权取消注册模型,Application Auto Scaling 会取消注册这些模型为可扩展目标,并且不会通知您。如果使用不提供 DeleteScalingPolicy 和 DeregisterScalableTarget 操作权限的自定义权限策略,您必须删除自动扩展策略并取消注册可扩展目标,然后再删除终端节点。
注意
作为 IAM 用户,如果其他用户在该端点上为变体配置了自动扩缩,则您可能没有足够的权限删除端点。