如何解决 Amazon ECS 中的“容量提供程序的托管终止保护设置无效”错误?

上次更新时间:2021 年 1 月 28 日

我尝试在 Amazon Elastic Container Service (Amazon ECS) 中创建集群容量提供程序时,收到以下错误:“容量提供程序的托管终止保护设置无效。要启用容量提供程序的托管终止保护,Auto Scaling 组必须启用防止缩减的实例保护。”

如何解决此错误?

解决方法

要解决此错误,请启用 Auto Scaling 组的缩减保护。您可以使用 Amazon Elastic Compute Cloud (Amazon EC2) 控制台或 AWS 命令行界面 (AWS CLI) 启用缩减保护。

注意:如果在运行 AWS CLI 命令时遇到错误,请确保您使用的是最新版本的 AWS CLI

使用 Amazon EC2 控制台

1.    打开 Amazon EC2 控制台,然后从导航窗格中选择 Auto Scaling 组

2.    选择您的 Auto Scaling 组。在详细信息选项卡中 ,向下滚动到高级配置,然后选择退出

3.    在实例缩减保护下,选择启动实例缩减保护

4.    选择更新

使用 AWS CLI

要使用 AWS CLI 为 Auto Scaling 组启用缩减保护,请运行以下命令:

aws autoscaling update-auto-scaling-group \
    --region RegionID \
    --auto-scaling-group-name yourASGName \
    --new-instances-protected-from-scale-in

注意:请将 RegionID 替换为您所在的 AWS 区域。使用您的 Auto Scaling 组名称替换 yourASGName

故障排除

如果您仍然收到错误,则 Auto Scaling 组启动的某些现有实例可能不具有缩减保护。

要使用 Amazon EC2 控制台或 AWS CLI 向剩余实例应用缩减保护,请执行以下步骤:

使用 Amazon EC2 控制台

1.    打开 Amazon EC2 控制台,然后从导航窗格中选择 Auto Scaling 组

2.    选择您的 Auto Scaling 组,然后选择实例选项卡。

3.    在实例 ID 列中,选择要对其应用缩减保护的实例。

4.    在实例管理选项卡上,选择操作设置缩减保护

5.    在 Amazon ECS 中创建容量提供程序

使用 AWS CLI

要列出未启用缩减保护的 Auto Scaling 组中的实例,请使用查询功能运行以下 AWS CLI 命令:

aws autoscaling describe-auto-scaling-groups \
    --region RegionID \
    --auto-scaling-group-names yourASGName \
    --query 'AutoScalingGroups[].Instances[?ProtectedFromScaleIn==`true`].{Id:InstanceId}' \
    --output text

注意:请将 RegionID 替换为您的 AWS 区域。使用您的 Auto Scaling 组名称替换 yourASGName

然后,请按照以下步骤为 Auto Scaling 组中的指定实例启用缩减保护:

1.    运行以下命令:

aws autoscaling set-instance-protection \
    --region RegionID \
    --instance-ids yourInstanceID \
    --auto-scaling-group-name yourASGName \
    --protected-from-scale-in
注意:请将 RegionID 替换为您的 AWS 区域。使用您的实例 ID 替换 yourInstanceID。使用您的 Auto Scaling 组名称替换 yourASGName

2.    在 Amazon ECS 中创建容量提供程序


这篇文章对您有帮助吗?


您是否需要账单或技术支持?