Por que não consigo excluir meu cluster do Amazon ECS?
Não consigo excluir meu cluster do Amazon Elastic Container Service (Amazon ECS).
Breve descrição
Ao tentar excluir o cluster, você pode receber uma das mensagens de erro a seguir:
- “Error occurred during operation 'DeleteClusters SDK Error: The Cluster cannot be deleted while Tasks are active. (Service: AmazonECS; Status Code: 400; Error Code: ClusterContainsTasksException; Request ID: 144948ca-1614-40e7-a08b-80d7f1fe38f6; Proxy: null)'." (RequestToken: f389c9fe-8ce3-855c-581a-ebe32a9a9901, HandlerErrorCode: GeneralServiceException)”
- “Error occurred during operation 'DeleteClusters SDK Error: The Cluster cannot be deleted while Services are active. (Service: AmazonECS; Status Code: 400; Error Code: ClusterContainsServicesException; Request ID: 1eb29389-dab7-4345-a453-cde2c2b54c60; Proxy: null)'.” (RequestToken: ec646d54-de77-f96c-d9a6-ac04c520f45a, HandlerErrorCode: GeneralServiceException)”
- “Error: deleting ECS Cluster (arn:aws:ecs:REGION:000000000000:cluster/my-ecs-cluster): operation error ECS: DeleteCluster, https response error StatusCode: 400, RequestID: 128b7de0-45e3-4130-8c8c-dcceb27a8bb9, ClusterContainsContainerInstancesException: The Cluster cannot be deleted while Container Instances are active or draining.”
- “An error occurred (UpdateInProgressException) when calling the DeleteCluster operation: The specified cluster is in a busy state. Cluster attachments must be in UPDATE_COMPLETE or UPDATE_FAILED state before they can be updated. Wait and try again.”
Para excluir um cluster do Amazon ECS, você deve primeiro excluir todos os serviços, interromper todas as tarefas em execução, cancelar o registro de todas as instâncias de contêiner e excluir todos os namespaces.
Resolução
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
(Opcional) Identifique os namespaces do serviço Amazon ECS
Antes de excluir o serviço e as tarefas, é uma prática recomendada identificar o namespace não essencial do AWS Cloud Map associado ao seu serviço.
Se o seu serviço usa a descoberta de serviços, execute o seguinte comando describe-services da AWS CLI para identificar o ARN da descoberta de serviços:
aws ecs describe-services --cluster CLUSTER_NAME --service SERVICE_ARN --query services[*].serviceRegistries[*].registryArn --output text
Observação: substitua CLUSTER\ _NAME pelo nome do cluster e SERVICE\ _ARN pelo serviço ARN do Amazon ECS.
Em seguida, execute o comando get-service para identificar a ID do namespace:
aws servicediscovery get-service --id SERVICE_ID --query Service.NamespaceId --output text
Observação: substitua SERVICE\ _ID pelo ID do serviço de descoberta de serviços.
Se seu serviço usa o Service Connect, execute o seguinte comando describe-services para identificar a ID do namespace:
aws ecs describe-services --cluster CLUSTER_NAME --service SERVICE_ARN --query services[*].deployments[].serviceConnectConfiguration.namespace --output text
Observação: substitua CLUSTER\ _NAME pelo nome do cluster e SERVICE\ _ARN pelo serviço ARN do Amazon ECS.
Pare todas as tarefas em execução
Para listar todas as tarefas em execução, execute o comando list-tasks:
aws ecs list-tasks --cluster CLUSTER_NAME --region REGION
Observação: substitua CLUSTER_NAME pelo nome do seu cluster e REGION pela sua região da AWS.
Para interromper uma tarefa, execute o seguinte comando stop-task:
aws ecs stop-task --cluster CLUSTER_NAME --task TASK_ARN --region REGION
Observação: substitua CLUSTER\ _NAME pelo nome do cluster, TASK\ _ARN pelo ARN da tarefa e REGION pela sua região.
Ou use o console do Amazon ECS para interromper a tarefa.
Exclua os serviços do Amazon ECS
Para listar todos os serviços no cluster, execute o comando list-services:
aws ecs list-services --cluster CLUSTER_NAME
Observação: substitua CLUSTER_NAME pelo nome do seu cluster.
Para excluir um serviço, execute o seguinte comando delete-service:
aws ecs delete-service --cluster CLUSTER_NAME --service SERVICE_ARN --force --region REGION
Observação: substitua CLUSTER_NAME pelo nome do cluster, SERVICE\ _ARN pelo ARN do serviço e REGION pela sua região.
Ou use o console do Amazon ECS para excluir o serviço.
Cancele o registro das instâncias de contêiner do Amazon ECS
Para listar todas as instâncias de contêiner registradas, execute o comando list-container-instances:
aws ecs list-container-instances --cluster CLUSTER_NAME --region REGION --output text --query containerInstanceArns
Observação: substitua CLUSTER_NAME pelo nome do seu cluster e REGION pela sua região.
Para cancelar o registro da instância de contêiner do cluster, execute o comando deregister-container-instance:
aws ecs deregister-container-instance --cluster CLUSTER_NAME --region REGION --container-instance CONTAINER_INSTANCE_ARN --force
Observação: substitua CLUSTER_NAME pelo nome do cluster, REGION pela sua região e CONTAINER_INSTANCE_ARN pelo ARN da instância do contêiner.
Ou use o console do Amazon ECS para cancelar o registro da instância do contêiner.
Excluir o namespace
Cancelar o registro de todas as instâncias de serviço
Para listar todas as instâncias de descoberta de serviços em um serviço, execute o comando list-instances:
aws servicediscovery list-instances --service-id SERVICE_DISCOVERY_ID_EXAMPLE
Observação: substitua SERVICE_DISCOVERY_ID_EXAMPLE pela ID do serviço de descoberta de serviços.
Para cancelar o registro da instância do serviço de descoberta de serviços, execute o comando deregister-instance:
aws servicediscovery deregister-instance --service-id SERVICE_DISCOVERY_ID_EXAMPLE --instance-id INSTANCE_EXAMPLE
Observação: substitua SERVICE_DISCOVERY_ID_EXAMPLE pelo ID do serviço de descoberta de serviços e NSTANCE_EXAMPLE pelo ID da instância.
Excluir todos os serviços de descoberta de serviços
Para visualizar todos os serviços de descoberta de serviços no namespace, execute o comando list-services:
aws servicediscovery list-services --filters Name=NAMESPACE_ID,Values=NAMESPACE_EXAMPLE,Condition=EQ
Observação: substitua NAMESPACE_EXAMPLE pelo seu ID de namespace.
Para excluir um serviço de descoberta de serviços, execute o seguinte comando delete-service:
aws servicediscovery delete-service --id SERVICE_ID_EXAMPLE
Observação: substitua SERVICE_ID_EXAMPLE pelo ID do serviço.
Excluir o namespace
Para excluir o namespace, execute o comando delete-namespace:
aws servicediscovery delete-namespace --id NAMESPACE_EXAMPLE
Observação: substitua NAMESPACE_EXAMPLE pelo seu ID de namespace.
Ou use o console do AWS Cloud Map para excluir o namespace.
Verifique o status dos anexos do cluster
Se você associou seu cluster a um provedor de capacidade de grupo do Amazon EC2 Auto Scaling, verifique o status dos anexos do cluster. Os anexos do cluster devem ter o status UPDATE_COMPLETE ou UPDATE_FAILED antes de você excluir o cluster. Se você excluir um cluster com anexos de cluster com o status UPDATE_IN_PROGRESS, receberá o erro UpdateInProgressException.
Para verificar os anexos do cluster, execute o comando describe-clusters:
aws ecs describe-clusters --cluster CLUSTER_NAME --include ATTACHMENTS --query clusters\[\].attachmentsStatus
Observação: substitua CLUSTER_NAME pelo nome do seu cluster.
Se os anexos do cluster tiverem o status UPDATE_IN_PROGRESS, aguarde até que o status seja resolvido automaticamente antes de excluir o cluster.
(Opcional) Exclua os provedores de capacidade associados ao cluster
Para visualizar os provedores de capacidade associados ao cluster, execute o comando describe-clusters:
aws ecs describe-clusters --cluster CLUSTER_NAME --include ATTACHMENTS --query clusters\[\].capacityProviders[] --output text
Observação: substitua CLUSTER_NAME pelo nome do seu cluster.
Para dissociar o provedor de capacidade do cluster, execute o comando put-cluster-capacity-providers:
aws ecs put-cluster-capacity-providers --cluster CLUSTER_NAME --capacity-providers [] --default-capacity-provider-strategy []
Observação: substitua CLUSTER_NAME pelo nome do seu cluster.
Para excluir o provedor de capacidade, execute o comando delete-capacity-provider:
aws ecs delete-capacity-provider --capacity-provider CAPACITY_PROVIDER_NAME
Observação: substitua CAPACITY\ _PROVIDER\ _NAME pelo nome do provedor de capacidade.
Ou use o console do Amazon ECS para excluir o provedor de capacidade.
Excluir o cluster
Para excluir o cluster, execute o comando delete-cluster:
aws ecs delete-cluster --cluster CLUSTER_NAME
Observação: substitua CLUSTER_NAME pelo nome do seu cluster.
Ou use o console do Amazon ECS para excluir o cluster.
Informações relacionadas
- Tópicos
- Containers
- Idioma
- Português

Conteúdo relevante
feita há um ano
feita há 2 anos
AWS OFICIALAtualizada há 3 anos
AWS OFICIALAtualizada há 4 anos