Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
Como resolvo erros quando excluo um provedor de capacidade no Amazon ECS?
Recebo um erro quando tento excluir um provedor de capacidade do meu cluster do Amazon Elastic Container Service (Amazon ECS).
Breve descrição
Se você usou o comando delete-capacity-provider da AWS Command Line Interface (AWS CLI) ou a API DeleteCapacityProvider, poderá receber um dos seguintes erros:
“updateStatus”: “DELETE_FAILED”
-ou-
“updateStatusReason”: “O provedor de capacidade não pode ser excluído porque está associado ao cluster: nome do cluster. Remova o provedor de capacidade do cluster e tente novamente.”
Se você usou o Console de Gerenciamento da AWS para excluir um provedor de capacidade, poderá receber o seguinte erro:
“Houve um erro ao excluir o provedor de capacidade [Nome do provedor de capacidade]. O provedor de capacidade especificado está em uso e não pode ser removido”
Não é possível excluir um provedor de capacidade associado a um cluster. Para resolver problemas de exclusão, você deve remover o provedor de capacidade do cluster ou excluir o cluster. Em seguida, exclua o provedor de capacidade.
Observação: se você excluir um grupo do Amazon EC2 Auto Scaling, o provedor de capacidade relacionado entrará no estado INATIVO. Não é uma prática recomendada usar provedores de capacidade no estado INATIVO, pois eles podem ser removidos automaticamente a qualquer momento.
Resolução
Observação: se você receber erros ao executar comandos da AWS CLI, consulte Solucionar erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI. Para formatação, instale o jq em Baixar jq no site jq.
Identificar os provedores de capacidade associados ao cluster
Para identificar todos os provedores de capacidade associados a um cluster do Amazon ECS, use o console do Amazon ECS ou a AWS CLI.
Console do Amazon ECS
Conclua as seguintes etapas:
- Abra o console do Amazon ECS.
- No painel de navegação, escolha Clusters.
- Selecione o cluster.
- Escolha a guia Infraestrutura.
- Escolha Provedores de capacidade.
AWS CLI
Execute o seguinte comando describe-clusters:
aws ecs describe-clusters --cluster your-cluster-name | jq '.clusters[].capacityProviders'
Observação: substitua your-cluster-name pelo nome do cluster.
Verificar se o Amazon ECS não está usando o provedor de capacidade na estratégia do provedor de capacidade
Para visualizar os serviços que usam o provedor de capacidade, execute o seguinte script:
#!/bin/bash cluster=ClusterName capacityprovider=CapacityProviderName services=$(aws ecs list-services --cluster ${cluster} | jq --raw-output '.serviceArns[]') aws ecs describe-services \ --cluster ${cluster} \ --services ${services} \ | jq -r --arg capacityprovider "${capacityprovider}" \ '.services[] | select(.capacityProviderStrategy[]?.capacityProvider == $capacityprovider) | .serviceName'
Observação: substitua ClusterName pelo nome do cluster e CapacityProviderName pelo nome do provedor de capacidade. Se o script retornar uma saída em branco, nenhum dos serviços no cluster está usando o provedor de capacidade. Nesse caso, prossiga para a seção Verificar se seu provedor de capacidade está definido na estratégia padrão do provedor de capacidade para o cluster.
Antes de excluir um provedor de capacidade que está em uso, você deve atualizar o Amazon ECS para usar um novo provedor de capacidade. Use o console do Amazon ECS ou a AWS CLI. Ao atualizar o serviço, use Forçar nova implantação para fazer a transição de tarefas que usam a capacidade de instância do Amazon Elastic Compute Cloud (Amazon EC2) entre provedores.
Para usar a AWS CLI para atualizar o provedor de capacidade, conclua as seguintes etapas:
-
Execute o seguinte comando describe-services para visualizar a estratégia do provedor de capacidade para o serviço:
aws ecs describe-services --cluster my-cluster --services my-service
Observação: substitua my-cluster pelo nome do cluster e my-service pelo nome do serviço.
-
Crie uma nova estratégia de provedor de capacidade que exclua o provedor de capacidade que você deseja remover. Certifique-se de que o peso total dos provedores de capacidade restantes seja 100.
-
Execute o seguinte comando update-service para atualizar o serviço:
aws ecs update-service \ --cluster your-cluster-name \ --service your-service-name \ --capacity-provider-strategy capacityProvider=remaining-provider,weight=100 \ --force-new-deployment
Observação: substitua your-cluster-name pelo nome do cluster e your-service-name pelo nome do serviço. Além disso, substitua remaining-provider pelo nome do novo provedor de capacidade.
Verificar se o provedor de capacidade está definido na estratégia padrão do cluster
Para encontrar a estratégia padrão do provedor de capacidade do cluster, execute o seguinte comando describe-clusters:
aws ecs describe-clusters --cluster mycluster | jq '.clusters[].defaultCapacityProviderStrategy'
Se o provedor de capacidade que você deseja excluir estiver na saída do comando, você deverá modificar a estratégia padrão do provedor de capacidade. É possível usar o console do Amazon ECS ou a AWS CLI.
Console do Amazon ECS
Conclua as seguintes etapas:
- Abra o console do Amazon ECS.
- No painel de navegação, escolha Clusters.
- Selecione o cluster.
- Escolha Atualizar cluster.
- Em Configuração do cluster, em Estratégia padrão do provedor de capacidade, escolha Remover para o provedor de capacidade.
- Escolha Atualizar.
AWS CLI
Execute o seguinte comando put-cluster-capacity-providers:
aws ecs put-cluster-capacity-providers --cluster ClusterName --capacity-providers [] --default-capacity-provider-strategy []
Observação: substitua ClusterName pelo nome do cluster.
Substitua o provedor de capacidade anterior por um novo antes de excluí-lo. Para substituir o provedor de capacidade, execute o seguinte comando put-cluster-capacity-provider:
aws ecs put-cluster-capacity-providers --cluster ClusterName --capacity-providers UpdatedCapacityProvider --default-capacity-provider-strategy capacityProvider=UpdatedCapacityProvider --region RegionName
Observação: substitua ClusterName pelo nome do cluster, UpdatedCapacityProvider pelo novo provedor de capacidade e RegionName pela sua região da AWS.
Ao executar o comando put-cluster-capacity-providers, você deve incluir todos os provedores de capacidade que deseja manter no cluster. Se você não incluir um provedor de capacidade, o Amazon ECS desassociará o provedor de capacidade do cluster.
Excluir o provedor de capacidade
Para excluir o provedor de capacidade, execute o seguinte comando delete-capacity-provider:
aws ecs delete-capacity-provider --capacity-provider PreviousCapacityProvider
Observação: substitua PreviousCapacityProvider pelo ARN do provedor de capacidade que você deseja excluir.
Para verificar se o provedor de capacidade foi excluído, execute o seguinte comando describe-capacity-providers:
aws ecs describe-capacity-providers --capacity-provider PreviousCapacityProvider
Observação: substitua PreviousCapacityProvider pelo ARN do provedor de capacidade que você excluiu.
Na saída do comando, verifique se o status do provedor de capacidade é INATIVO.

Conteúdo relevante
- feita há 3 meses
- feita há 5 meses