Quero excluir minha pilha do AWS CloudFormation, mas ela está presa no status DELETE_FAILED.
Breve descrição
Sua pilha pode estar presa no status DELETE_FAILED por um dos seguintes motivos:
- Um recurso da pilha tem um objeto dependente ou outras dependências que você não consegue excluir.
- O perfil de serviço que você está usando não é válido ou você não pode assumir o perfil do AWS Identity and Access Management (AWS IAM).
- Um recurso personalizado não se estabiliza dentro do tempo limite de resposta padrão.
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.
Excluir uma pilha que tenha dependências que não é possível excluir
Os problemas de dependência podem ocorrer quando você faz uma alteração fora da banda. Por exemplo, sua pilha tem um grupo de segurança vinculado a uma interface de rede elástica que não faz parte da sua pilha. Você não pode excluir sua pilha porque não pode excluir o grupo de segurança. Para excluir uma pilha, mas reter o recurso que tem dependências, use o console do CloudFormation para forçar a exclusão da pilha. Ou execute os seguintes comandos da AWS CLI.
Para excluir uma pilha que está presa no status DELETE_FAILED e reter os recursos que não foram excluídos, execute o seguinte comando delete-stack:
aws cloudformation delete-stack --stack-name my-stack --retain-resources myresource1 myresource2
Observação: substitua my-stack pelo nome da sua pilha e myresource1 e myresource2 pelos IDs dos recursos que não foram excluídos.
O CloudFormation exclui a pilha, mas não exclui os recursos que você reteve. O status da sua pilha muda para DELETE_COMPLETE.
Observação: para evitar cobranças pelos recursos retidos, exclua manualmente os recursos retidos depois de excluir sua pilha.
Para forçar a exclusão de uma pilha que tenha dependências que você não pode excluir, execute o seguinte comando delete-stack:
aws cloudformation delete-stack --stack-name my-stack --deletion-mode FORCE_DELETE_STACK
Observação: substitua my-stack pelo nome da sua pilha.
Excluir uma pilha com um perfil que não é válido
Se você tentar excluir uma pilha que usa um perfil de serviço que não existe mais, receberá o seguinte erro:
"An error occurred (ValidationError) when calling the DeleteStack operation: Role is invalid or cannot be assumed."
Para solucionar esse problema, realize as etapas a seguir:
- Abra o console do CloudFormation.
- Selecione a pilha que você deseja excluir.
- Na guia Informações da pilha, anote o nome do perfil do IAM da pilha.
- Crie um perfil do IAM com o mesmo nome do perfil do IAM na etapa anterior. Importante: ao criar seu perfil do IAM, verifique se ele tem as permissões para excluir os recursos da pilha.
- Use o console do CloudFormation para excluir a pilha.
Se você não se lembrar das permissões de um perfil excluído, não será possível criar um novo perfil com as mesmas permissões para excluir a pilha. Obtenha um novo perfil e, em seguida, execute o seguinte comando delete-stack com o novo perfil para excluir a pilha:
aws cloudformation delete-stack --stack-name my-stack --role-arn new_role
Observação: substitua my-stack pelo nome da sua pilha e new_role pelo número do recurso da Amazon (ARN) do novo perfil.
Excluir uma pilha de um recurso personalizado que não estabiliza
Para solucionar o problema, consulte Como excluo um recurso personalizado com suporte do Lambda que está preso no status DELETE_FAILED ou no status DELETE_IN_PROGRESS no CloudFormation?
Informações relacionadas
DeleteStack