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

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

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

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

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

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

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

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

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

  1. 通过调用 DeregisterScalableTarget,取消注册该终端节点,使其不再作为可扩展目标。

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

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

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

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

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

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

注意

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

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

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

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

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

注意

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