更新使用自动扩展的终端节点 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

更新使用自动扩展的终端节点

更新使用自动扩展的终端节点

当您更新终端节点时,Application Auto Scaling 会检查该终端节点上的任何模型是否为自动扩展的目标。如果更新将更改作为自动扩展目标的任何模型的实例类型,则更新将失败。

在 AWS 管理控制台中,您会看到一条警告,指示您必须从自动扩展中取消注册模型,然后才能对其进行更新。如果您尝试通过调用 UpdateEndpoint API 来更新终端节点,则调用将失败。在更新终端节点之前,通过调用 DeleteScalingPolicy Application Auto Scaling API 操作来删除为其配置的任何扩展策略,然后调用 DeregisterScalableTarget 取消注册变体为可扩展目标。在您更新终端节点后,可以将变体注册为可扩展目标,并将自动扩展策略附加到更新后的变体中。

有一个例外。如果您更改为自动缩放而配置的变体的模型,Amazon SageMaker 自动扩展会允许更新。这是因为更改模型通常不会影响足够的性能来更改自动扩展行为。如果您确实要更新为自动扩展而配置的变体的模型,请确保对模型的更改不会显著影响性能和自动扩展行为。

更新应用了自动扩展的 SageMaker 终端节点时,请完成以下步骤:

更新应用了自动扩展的终端节点

  1. 通过调用 DeregisterScalableTarget 取消注册终端节点为可扩展目标。

  2. 由于在进行更新操作期间(或者如果您在上一步中关闭了自动扩展)会阻止自动扩展,因此,您可能需要采取额外的预防措施,以便在更新期间增加终端节点的实例数量。为此,请通过调用 UpdateEndpointWeightsAndCapacities,为该终端节点上托管的生产变体增加实例数量。

  3. 重复调用 DescribeEndpoint,直到响应的 EndpointStatus 字段的值为 InService

  4. 调用 DescribeEndpointConfig 来获取当前终端节点配置值。

  5. 通过调用 CreateEndpointConfig 创建新的终端节点配置。 对于要保留现有实例计数或权重的生产变体,请使用在上一步中调用 DescribeEndpointConfig 的响应中的相同变体名称。对于所有其他值,请使用在上一步骤中调用 DescribeEndpointConfig 时作为响应获取的值。

  6. 通过调用 UpdateEndpoint 更新终端节点。 将您在上一步中创建的终端节点配置指定为 EndpointConfig 字段。如果要保留变体属性(如实例计数或权重),请将 RetainAllVariantProperties 参数的值设置为 True。 这指定具有相同名称的生产变体将使用从对 DesiredInstanceCount 的调用响应中的最新 DescribeEndpoint 进行更新,而不考虑新 InitialInstanceCount 中的 EndpointConfig 字段的值。

  7. (可选)通过调用 RegisterScalableTarget 重新启用自动扩展功能。

注意

只有在使用以下更改更新终端节点时,才需要步骤 1 和 7:

  • 更改配置了自动扩展的生产变体的实例类型。

  • 删除配置了自动扩展的生产变体。

删除为自动扩展配置的终端节点

如果您删除终端节点,Application Auto Scaling 会检查该终端节点上的任何模型是否为自动扩展的目标。如果您有权取消注册模型,Application Auto Scaling 会取消注册这些模型为可扩展目标而不通知您。如果您使用不提供 DeleteScalingPolicy 和 操作的权限的自定义权限策略,则必须删除自动扩展策略并取消注册可扩展目标,然后再删除终端节点。DeregisterScalableTarget

注意

您是 IAM 用户,如果另一个 IAM 用户为终端节点上的变体配置了自动扩展,则您可能没有足够的权限删除该终端节点。