无法在Cloudformation中删除ECS服务

时间:2018-06-18 17:32:18

标签: amazon-web-services amazon-cloudformation amazon-ecs

我遇到了一个小问题,删除了一个具有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)

我认为我只是做错了什么,所以任何见解都会受到赞赏。

2 个答案:

答案 0 :(得分:1)

我已经为此花了很长时间,直到上周才在任何地方找到可行的解决方案。 AWS刚刚发布了其新API,其中具有-force 选项以删除服务。 该任务和服务现在已损坏,唯一的处理方法是删除它,您不能再对其进行更新。

您现在可以使用此命令删除服务;上周不可能! {code} aws ecs delete-service --service my-http-service --force true {code}

希望这会有所帮助

答案 1 :(得分:0)

AWS支持出现的问题,被告知这是他们的错误,此后不久就得到解决。