Atributo DeletionPolicy - AWS CloudFormation

Atributo DeletionPolicy

Con el atributo DeletionPolicy puede conservar y, en algunos casos, realizar una copia de seguridad de un recurso cuando se elimina su pila. Puede especificar un atributo DeletionPolicy para cada recurso que quiera controlar. Si un recurso no tiene ningún atributo DeletionPolicy, AWS CloudFormation eliminará el recurso de manera predeterminada.

Esta capacidad también se aplica a las operaciones de actualización de pilas que hacen que se eliminen recursos de las pilas. Por ejemplo, si elimina el recurso de la plantilla de pila y, a continuación, actualiza la pila con la plantilla. Esta capacidad no se aplica a los recursos cuya instancia física se sustituye durante las operaciones de actualización de la pila. Por ejemplo, si edita las propiedades de un recurso de tal forma que CloudFormation sustituya dicho recurso durante la actualización de una pila.

nota

Excepción: la política predeterminada es Snapshot para los recursos de AWS::RDS::DBCluster y para los recursos de AWS::RDS::DBInstance que no especifican la propiedad DBClusterIdentifier.

Para mantener un recurso cuando se elimina su pila, especifique Retain para ese recurso. Puede utilizar Retain para cualquier recurso. Por ejemplo, puede conservar una pila anidada, el bucket de Amazon S3 o la instancia de EC2 para poder seguir utilizando o modificando esos recursos después de eliminar sus pilas.

nota

Si desea modificar recursos fuera de CloudFormation, utilice una política de eliminación Retain y, a continuación, elimine la pila. De lo contrario, sus recursos podrían desactualizarse con la plantilla de CloudFormation y producir errores de pila.

Para los recursos que admiten instantáneas, como por ejemplo AWS::EC2::Volume, puede especificar Snapshot para que CloudFormation cree una instantánea antes de eliminar el recurso.

El siguiente fragmento de código contiene un recurso de bucket de Amazon S3 con una política de eliminación Retain. Cuando se elimina esta pila, CloudFormation deja el bucket sin eliminarlo.

JSON

{ "AWSTemplateFormatVersion" : "2010-09-09", "Resources" : { "myS3Bucket" : { "Type" : "AWS::S3::Bucket", "DeletionPolicy" : "Retain" } } }

YAML

AWSTemplateFormatVersion: '2010-09-09' Resources: myS3Bucket: Type: AWS::S3::Bucket DeletionPolicy: Retain

Opciones de DeletionPolicy

Eliminación

CloudFormation elimina el recurso y todo su contenido si procede durante la eliminación de la pila. Puede añadir esta política de eliminación a cualquier tipo de recurso. De manera predeterminada, si no especifica un DeletionPolicy, CloudFormation eliminará los recursos. Sin embargo, debe tener en cuenta las siguientes consideraciones:

  • En el caso de recursos AWS::RDS::DBCluster, la política predeterminada es Snapshot.

  • Para los recursos AWS::RDS::DBInstance que no especifican la propiedad DBClusterIdentifier, la política predeterminada es Snapshot.

  • Para buckets de Amazon S3, debe eliminar todos los objetos en el bucket para una correcta eliminación.

nota

El comportamiento predeterminado de CloudFormation es eliminar el secreto con el indicador ForceDeleteWithoutRecovery.

Retener

CloudFormation mantiene el recurso sin eliminar el recurso o su contenido cuando se elimina su pila. Puede añadir esta política de eliminación a cualquier tipo de recurso. Cuando CloudFormation completa la eliminación de la pila, la pila tendrá el estado Delete_Complete; sin embargo, los recursos que se conservan siguen existiendo y siguen devengando cargos aplicables hasta que elimina esos recursos.

Para actualizar operaciones, las siguientes consideraciones son aplicables:

  • Si se elimina un recurso, la DeletionPolicy retiene el recurso físico, pero garantiza que se elimine del ámbito de CloudFormation.

  • Si un recurso se actualiza de forma que se crea un nuevo recurso físico para sustituir el recurso anterior, el recurso anterior se elimina por completo, incluido el ámbito de CloudFormation.

RetainExceptOnCreate

RetainExceptOnCreate se comporta como Retain para las operaciones de pila, excepto para la operación de pila que creó inicialmente el recurso. Si la operación de pila que creó el recurso se revierte, CloudFormation elimina el recurso. Para todas las demás operaciones de pila, como la eliminación de pila, CloudFormation retiene el recurso y su contenido. El resultado es que los recursos nuevos, vacíos y no usados se eliminan, mientras que los recursos en uso y sus datos se retienen. Consulte la documentación de la API UpdateStack para usar esta política de eliminación como parámetro de la API sin actualizar su plantilla.

Instantánea

Para los recursos que admiten instantáneas, CloudFormation crea una instantánea para el recurso antes de eliminarlo. Cuando CloudFormation completa la eliminación de la pila, la pila tendrá el estado Delete_Complete; sin embargo, las instantáneas que se crean con esta política siguen existiendo y siguen devengando cargos hasta que elimina esas instantáneas.

Entre los recursos que admiten instantáneas se incluyen: