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

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

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

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

在 Amazon Web Services Management Console中,您会看到一条警告,指示您必须从自动扩展中取消注册模型,然后才能对其进行更新。如果您试图通过调用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。这会指定具有相同名称的生产变体将使用从调用 DescribeEndpoint 得到的响应中的最新 DesiredInstanceCount 进行更新,而不考虑新 EndpointConfigInitialInstanceCount 字段的值。

  7. (可选)通过调用 RegisterScalableTarget 重新激活自动扩缩功能。

注意

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

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

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

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

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

注意

作为 IAM 用户,如果其他用户在该端点上为变体配置了自动扩缩,则您可能没有足够的权限删除端点。