Saltar al contenido

¿Cómo puedo eliminar una pila de CloudFormation que está bloqueada en el estado DELETE_FAILED?

4 minutos de lectura
0

Quiero eliminar mi pila de AWS CloudFormation, pero está bloqueada en el estado DELETE_FAILED.

Descripción corta

Tu pila puede estar bloqueada en el estado DELETE_FAILED por las siguientes razones:

  • No puedes eliminar un objeto u otras dependencias de un recurso de pila.
  • El rol de servicio que utilizas no es válido o no puedes asumir el rol de AWS Identity and Access Management (IAM).
  • Un recurso personalizado no se estabiliza dentro del tiempo de espera de respuesta predeterminado.

Resolución

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.

Eliminación de una pila que tenga dependencias que no puedas eliminar

Los problemas de dependencias suelen producirse cuando se realiza un cambio externo. Por ejemplo, tu pila tiene un grupo de seguridad que está conectado a una interfaz de red elástica que no forma parte de la pila. No puedes eliminar tu pila porque no puedes eliminar el grupo de seguridad. Para eliminar una pila, pero retener el recurso que tiene dependencias, utiliza la consola de CloudFormation para forzar la eliminación de la pila. O bien, ejecuta el siguiente comando de AWS CLI.

Para eliminar una pila que está bloqueada en el estado DELETE_FAILED y retener los recursos que no se eliminaron, ejecuta el comando delete-stack:

aws cloudformation delete-stack --stack-name my-stack --retain-resources myresource1 myresource2

**Nota:**Sustituye my-stack por el nombre de tu pila y myresource1 y myresource2 por los id. de los recursos que no se eliminaron.

CloudFormation elimina la pila, pero no elimina los recursos que hayas retenido. El estado de la pila cambia a DELETE_COMPLETE.

Nota: Para evitar cargos por los recursos retenidos, elimínalos manualmente después de eliminar la pila.

Para forzar la eliminación de una pila que tiene dependencias que no puedes eliminar, ejecuta el comando delete-stack:

 aws cloudformation delete-stack --stack-name my-stack --deletion-mode FORCE_DELETE_STACK

Nota: Sustituye my-stack por el nombre de tu pila.

Eliminación de una pila con un rol que no es válido

Si intentas eliminar una pila que usa un rol de servicio que ya no existe, recibirás el siguiente error:

"An error occurred (ValidationError) when calling the DeleteStack operation: Role is invalid or cannot be assumed."

Para resolver este problema, sigue estos pasos:

  1. Abre la consola de CloudFormation.
  2. Selecciona la pila que quieres eliminar.
  3. En la pestaña Información de la pila, anota el nombre del rol de IAM de la pila.
  4. Crea un rol de IAM que tenga el mismo nombre que el rol de IAM del paso anterior. Importante: Cuando crees tu rol de IAM, comprueba que tiene los permisos adecuados para eliminar los recursos de la pila.
  5. Usa la consola de CloudFormation para eliminar la pila.

Si no recuerdas los permisos de un rol eliminado, no podrás crear un rol nuevo con los mismos permisos para eliminar la pila. Debes obtener un rol nuevo y, a continuación, ejecutar el comando delete-stack con el nuevo rol para eliminar la pila:

aws cloudformation delete-stack --stack-name my-stack --role-arn new_role

**Nota:**Sustituye my-stack por el nombre de la pila y new_role por el número de recurso de Amazon (ARN) de tu nuevo rol.

Eliminación de una pila para un recurso personalizado que no se ha estabilizado

Para solucionar este problema, consulta ¿Cómo elimino un recurso personalizado respaldado por Lambda que está bloqueado en el estado DELETE_FAILED o DELETE_IN_PROGRESS en CloudFormation?

Información relacionada

DeleteStack