我尝试在 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 中创建容量提供程序。
相关信息
Amazon ECS 集群 Auto Scaling