Excluí uma definição de tarefa do Amazon Elastic Container Service (Amazon ECS), mas ela está parada no estado DELETE_IN_PROGRESS.
Resolução
Observação: Se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Uma solicitação de exclusão da definição da tarefa não pode ser concluída quando um recurso do Amazon ECS depende da revisão da definição da tarefa. Se uma tarefa ou serviço isolado usar a definição de tarefa que você excluiu, a definição da tarefa ficará parada no estado DELETE_IN_PROGRESS.
Para resolver esse problema, execute o seguinte comando list-clusters da AWS CLI para identificar todos os recursos que usam a definição da tarefa:
TaskDefARN=TaskDefinitionARN
REGION=Regioncode
for cluster in $(aws ecs list-clusters --region $REGION --output text --query 'clusterArns[]'); do echo "Checking cluster: $cluster"; for task in $(aws ecs list-tasks --region $REGION --cluster $cluster --output text --query 'taskArns[]'); do task_def=$(aws ecs describe-tasks --region $REGION --cluster $cluster --tasks $task --query 'tasks[].taskDefinitionArn' --output text); if [[ "$task_def" == "$TaskDefARN" ]]; then echo "Task using this definition: $task"; fi; done; for service in $(aws ecs list-services --region $REGION --cluster $cluster --output text --query 'serviceArns[]'); do service_def=$(aws ecs describe-services --region $REGION --cluster $cluster --services $service --query 'services[].taskDefinition' --output text); if [[ "$service_def" == "$TaskDefARN" ]]; then echo "Service using this definition: $service"; fi; done; done
Observação: substitua TaskDefinitionARN pelo ARN da definição da tarefa e Regioncode pela sua região AWS.
Exemplo de saída:
Checking cluster: arn:aws:ecs:us-east-1:123456789012:cluster/cluster-1
Checking cluster: arn:aws:ecs:us-east-1:123456789012:cluster/cluster-2
Checking cluster: arn:aws:ecs:us-east-1:123456789012:cluster/cluster-3
Task using this definition: arn:aws:ecs:us-east-1:123456789012:task/cluster-3/abcde
Service using this definition: arn:aws:ecs:us-east-1:123456789012:service/cluster-3/service-1
No exemplo anterior, a tarefa abcde pertence a service-1. Para excluir a definição da tarefa abcde, você deve primeiro excluir service-1.
Se o seu serviço estiver mantendo tarefas, você poderá receber a seguinte mensagem de erro ao tentar excluir o serviço:
“Ocorreu um erro (InvalidParameterException) ao chamar a operação DeleteService: O serviço não pode ser interrompido enquanto estiver em escala acima de 0.”
Para resolver esse problema, verifique se o serviço não tem tarefas em execução e se a contagem de tarefas é 0 antes de excluir o serviço. Ou adicione a opção --force ao executar o comando delete-service.
Use o console do Amazon ECS para excluir o serviço. Ou execute o seguinte comando delete-service:
aws ecs delete-service --cluster clustername --service servicename
Observação: substitua clustername pelo nome do seu cluster e servicename pelo nome do seu serviço.
Para tarefas do Amazon ECS, a exclusão da definição da tarefa pode levar até 1 hora para ser concluída após a interrupção da tarefa. Para os serviços do Amazon ECS, a exclusão da definição de tarefas pode levar até 24 horas para ser concluída após a exclusão da implantação ou do conjunto de tarefas.
É possível criar uma nova definição de tarefa com o mesmo nome da definição anterior somente após a exclusão total da definição. Se você ainda não excluiu a definição da tarefa, crie uma nova revisão da mesma definição em vez de uma nova definição. É possível usar a revisão para iniciar novas tarefas e fazer as alterações necessárias até que a exclusão da definição de tarefa anterior seja totalmente concluída.
Informações relacionadas
Estados de definição de tarefas do Amazon ECS
describe-services
describe-tasks