我遇到了一个小问题,删除了一个具有ECS集群和ECS服务作为其一部分的Cloudformation堆栈。
如果我只是从CF控制台手动删除它,我的删除失败,出现以下错误:
t4
在AWS文档(https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_CleaningUp.html)之后,我们编写了一个脚本来使用AWS cli删除集群,这个脚本在几个月之前一直运行良好,直到星期五。
AWS::ECS::Cluster The Cluster cannot be deleted while Container Instances are active or draining.
但是我们现在收到这个新错误:
stack=$1
services="$(aws ecs list-services --cluster "$stack" | grep "$stack" | sed -e 's/"//g' -e 's/,//')"
for service in $services; do
aws ecs update-service --cluster "$stack" --service "$service" --desired-count 0
aws ecs delete-service --cluster "$stack" --service "$service"
done
for id in $(aws ecs list-container-instances --cluster "$stack" | grep container-instance | sed -e 's/"//g' -e 's/,//'); do
aws ecs deregister-container-instance --cluster "$stack" --container-instance "$id" --force
done
for service in $services; do
aws ecs wait services-inactive --cluster "$stack" --services "$service"
done
aws ecs delete-cluster --cluster "$stack"
aws cloudformation delete-stack --stack-name "$stack"
所以我删除了ECS更新并删除了服务调用,认为他们只需要保持ACTIVE状态,当我们删除ECS群集时,它会处理它们。但当我这样做时,我得到了这个相互矛盾的错误:
AWS::ECS::Service: Service was not ACTIVE. (Service: AmazonECS; Status Code: 400; Error Code: ClientException; Request ID: xxxx-xxxx-xxxx-xxxx)
我认为我只是做错了什么,所以任何见解都会受到赞赏。
答案 0 :(得分:1)
我已经为此花了很长时间,直到上周才在任何地方找到可行的解决方案。 AWS刚刚发布了其新API,其中具有-force 选项以删除服务。 该任务和服务现在已损坏,唯一的处理方法是删除它,您不能再对其进行更新。
您现在可以使用此命令删除服务;上周不可能! {code} aws ecs delete-service --service my-http-service --force true {code}
希望这会有所帮助
答案 1 :(得分:0)
AWS支持出现的问题,被告知这是他们的错误,此后不久就得到解决。