Si se produce un error en la operación de la pila, no tendrá que restaurar los recursos que ya se habían aprovisionado correctamente y volver a empezar desde el principio cada vez. En su lugar, puede solucionar los problemas de los recursos en un estado UPDATE_FAILED
o CREATE_FAILED
y, a continuación, reanudar el aprovisionamiento desde el punto en el que se produjo el problema.
Para ello, debe activar la opción para conservar los recursos aprovisionados correctamente. Esta opción está disponible para todas las implementaciones de pilas y operaciones de conjuntos de cambios.
-
Para crear pilas, si elige la opción Conservar los recursos aprovisionados correctamente, CloudFormation conserva el estado de los recursos que se crearon correctamente y deja los con errores en un estado con error hasta que se lleve a cabo la siguiente operación de actualización.
-
Actualizar y cambiar las operaciones de conjunto establecidas en Conservar los recursos aprovisionados correctamente mantiene el estado de los recursos satisfactorios y, al mismo tiempo, reduce los recursos con errores al último estado estable conocido. El estado de los recursos con error será
UPDATE_FAILED
. Los recursos sin un último estado estable conocido se eliminarán en la siguiente operación de pila.
Temas
Descripción general de las opciones de errores de pila
Antes de emitir una operación desde la consola de CloudFormation, la API o la AWS CLI, especifique el comportamiento de los errores de recursos aprovisionados. A continuación, continúe con el proceso de implementación de sus recursos sin ninguna otra modificación. En caso de que se produzca un error operativo, CloudFormation se detiene en el primer error de cada ruta de aprovisionamiento independiente. CloudFormation identifica las dependencias entre los recursos para paralelizar acciones de aprovisionamiento independientes. A continuación, procede a aprovisionar recursos en cada ruta de aprovisionamiento independiente hasta que se produce un error. Un error en una ruta no afecta a otras rutas de aprovisionamiento. CloudFormation continuará aprovisionando los recursos hasta que se completen o se detengan en un error diferente.
Solucione cualquier problema para continuar con el proceso de implementación. CloudFormation lleva a cabo las actualizaciones necesarias antes de volver a intentar las acciones de aprovisionamiento en los recursos que no se pudieron aprovisionar correctamente antes. Para solucionar los problemas, envíe una operación Retry (Reintentar), Update (Actualizar) o Roll back (Restaurar). Por ejemplo, si va a aprovisionar una instancia de Amazon EC2 y se produce un error en la instancia de EC2 durante una operación de creación, es posible que desee investigar el error, en lugar de deshacer el recurso fallido de inmediato. Puede revisar las verificaciones de estado del sistema y las verificaciones de estado de las instancias y, a continuación, seleccionar la operación Retry (Reintentar) una vez que se resuelvan los problemas.
Cuando se produce un error en una operación de pila y se ha especificado Preserve successfully provisioned resources (Conservar los recursos aprovisionados correctamente) en el menú Stack failure options (Opciones de error de pila), puede seleccionar las siguientes opciones.
-
Retry (Reintentar): reintenta la operación de aprovisionamiento en los recursos con errores y continúa aprovisionando la plantilla hasta que se complete correctamente la operación de pila o se produzca el siguiente error. Seleccione esta opción si el recurso no se ha podido aprovisionar debido a un problema que no requiere modificaciones en la plantilla, como un permiso de AWS Identity and Access Management (IAM).
-
Update (Actualizar): los recursos que se han aprovisionado se actualizan en las actualizaciones de la plantilla. Los recursos que no se hayan podido crear o actualizar se volverán a intentar. Seleccione esta opción si el recurso no se ha podido aprovisionar debido a errores de plantilla y ha modificado la plantilla. Cuando actualiza una pila cuyo estado es
FAILED
, debe seleccionar Preserve successfully provisioned resources (Conservar los recursos aprovisionados correctamente) en Stack failure options (Opciones de error de pila) para seguir actualizando la pila. -
Roll back (Restaurar): CloudFormation restaura la pila al último estado estable conocido.
Condiciones necesarias para pausar la reversión de la pila
Para evitar que CloudFormation reversione y elimine de forma automática los recursos que se crearon correctamente, deben cumplirse las siguientes condiciones.
-
Al crear o actualizar la pila, debe elegir la opción Conservar los recursos aprovisionados correctamente. Esto le indica a CloudFormation que no elimine los recursos que se crearon correctamente, incluso si se produce un error en la operación general de la pila.
-
La operación de apilamiento debe haber fallado, lo que significa que el estado de la pila es
CREATE_FAILED
oUPDATE_FAILED
.
nota
No se admiten los tipos de actualización inmutables.
Conservar los recursos aprovisionados correctamente (consola)
Para conservar los recursos aprovisionados correctamente durante una operación de creación de pila
Inicie sesión en la AWS Management Console y abra la consola de AWS CloudFormation en https://console.aws.amazon.com/cloudformation
. -
En la página Pilas, seleccione Crear pila en la parte superior derecha y, a continuación, seleccione Con recursos nuevos (estándar).
-
En Requisito previo: preparar la plantilla, elija Seleccione una plantilla existente.
-
En Especificar plantilla, elija especificar la dirección URL del bucket de S3 que contiene la plantilla de pila o cargar un archivo de plantilla de pila. A continuación, elija Siguiente.
-
En la página Specify stack details (Especificar los detalles de la pila), ingrese un nombre de pila en el cuadro Stack name (Nombre de la pila).
-
En la sección Parameters (Parámetros), especifique los parámetros que se definen en su plantilla de la pila.
Puede utilizar o cambiar cualquier parámetro con valores predeterminados.
-
Cuando esté satisfecho con los valores de los parámetros, elija Next (Siguiente).
-
En la página Configure stack options (Configurar opciones de pila), puede configurar opciones adicionales para su pila.
-
En Stack failure options (Opciones de error de pila), seleccione Preserve successfully provisioned resources (Conservar los recursos aprovisionados correctamente).
-
Cuando esté satisfecho con las opciones de pila, elija Next (Siguiente).
-
Revise su pila en la página Review (Revisar) y seleccione Create stack (Crear pila).
Resultados: los recursos que no se pudieron crear hacen la transición del estado de la pila a CREATE_FAILED
para evitar que la pila se restaure cuando se produce un error en la operación de pila. El estado de los recursos que se aprovisionan correctamente es CREATE_COMPLETE
. Puede supervisar la pila en la pestaña Stack events (Eventos de la pila).
Conservar los recursos aprovisionados correctamente (AWS CLI)
Para conservar los recursos aprovisionados correctamente durante una operación de creación de pila
Especifique la opción --disable-rollback
o enumeración on-failure DO_NOTHING
durante una operación create-stack.
-
Proporcione un nombre de pila y una plantilla al comando create-stack con la opción
--disable-rollback
.aws cloudformation create-stack --stack-name
myteststack
\ --template-bodyfile://template.yaml
\ --disable-rollbackEl comando devuelve el siguiente resultado:
{ "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896" }
-
Describa el estado de la pila mediante el comando describe-stacks.
aws cloudformation describe-stacks --stack-name
myteststack
El comando devuelve el resultado siguiente.
{ "Stacks": [ { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896", "Description": "AWS CloudFormation Sample Template", "Tags": [], "Outputs": [], "StackStatusReason": “The following resource(s) failed to create: [MyBucket]”, "CreationTime": "2013-08-23T01:02:15.422Z", "Capabilities": [], "StackName": "myteststack", "StackStatus": "CREATE_FAILED", "DisableRollback": true } ] }
Restauración de una pila
Puede usar el comando rollback-stack para restaurar una pila con un estado de pila UPDATE_FAILED
o CREATE_FAILED
a su último estado estable.
El siguiente comando rollback-stack revierte la pila especificada.
aws cloudformation rollback-stack --stack-name
myteststack
El comando devuelve el resultado siguiente.
{
"StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896"
}
nota
La operación rollback-stack borrará una pila si no contiene un último estado estable conocido.