Attribut DeletionPolicy - AWS CloudFormation

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Attribut DeletionPolicy

Avec l'attribut DeletionPolicy, vous pouvez conserver et (dans certains cas) sauvegarder une ressource lorsque sa pile est supprimée. Vous spécifiez un attribut DeletionPolicy pour chaque ressource que vous souhaitez contrôler. Si une ressource ne possède aucun DeletionPolicy attribut, elle est AWS CloudFormation supprimée par défaut.

Cette fonctionnalité s'applique également aux opérations de mise à jour de pile qui entraînent la suppression de certaines ressources dans les piles. C'est le cas si vous supprimez la ressource du modèle de pile, puis que vous la mettez à jour avec le modèle. Cette fonctionnalité ne s'applique pas aux ressources dont l'instance physique est remplacée pendant les opérations de mise à jour de la pile. Par exemple, si vous modifiez les propriétés d'une ressource de telle sorte qu'elle CloudFormation remplace cette ressource lors d'une mise à jour de la pile.

Note

Exception : La politique par défaut est Snapshot pour les ressources AWS::RDS::DBCluster et pour les ressources AWS::RDS::DBInstance qui ne spécifient pas la propriété DBClusterIdentifier.

Pour conserver une ressource lorsque sa pile est supprimée, spécifiez Retain pour celle-ci. Vous pouvez utiliser Retain pour n'importe quelle ressource. Par exemple, vous pouvez conserver une pile imbriquée, un compartiment Amazon S3 ou une EC2 instance afin de continuer à utiliser ou à modifier ces ressources après avoir supprimé leurs piles.

Note

Si vous souhaitez modifier des ressources en dehors de CloudFormation, utilisez une politique de Retain suppression, puis supprimez la pile. Dans le cas contraire, vos ressources risquent de se désynchroniser avec votre CloudFormation modèle et de provoquer des erreurs de pile.

Pour les ressources qui prennent en charge les instantanés, par exempleAWS::EC2::Volume, spécifiez Snapshot de CloudFormation créer un instantané avant de supprimer la ressource.

L'extrait suivant contient une ressource de compartiment Amazon S3 avec une politique de suppression Retain. Lorsque cette pile est supprimée, elle CloudFormation quitte le compartiment sans le supprimer.

JSON

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

YAML

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

Options DeletionPolicy

Delete

CloudFormation supprime la ressource et tout son contenu, le cas échéant, lors de la suppression de la pile. Vous pouvez ajouter cette politique de suppression à n'importe quel type de ressource. Par défaut, si vous ne spécifiez pas deDeletionPolicy, CloudFormation supprime vos ressources. Cependant, soyez conscient des points suivants :

  • La politique par défaut pour les ressources AWS::RDS::DBCluster est Snapshot.

  • Pour les ressources AWS::RDS::DBInstance qui ne spécifient pas la propriété DBClusterIdentifier, la politique par défaut est Snapshot.

  • Pour les compartiments Amazon S3, vous devez supprimer tous les objets qu'ils contiennent pour que la suppression fonctionne.

Note

Le comportement par défaut de CloudFormation est de supprimer le secret avec le ForceDeleteWithoutRecovery drapeau.

Retain

CloudFormation conserve la ressource sans supprimer la ressource ou son contenu lorsque sa pile est supprimée. Vous pouvez ajouter cette politique de suppression à n'importe quel type de ressource. CloudFormation Une fois la suppression de la pile terminée, la pile sera en bon Delete_Complete état ; toutefois, les ressources conservées continuent d'exister et de faire l'objet de frais applicables jusqu'à ce que vous les supprimiez.

Pour les opérations de mise à jour, les considérations suivantes s'appliquent :

  • Si une ressource est supprimée, DeletionPolicy elle conserve la ressource physique mais veille à ce qu'elle soit supprimée de CloudFormation son champ d'application.

  • Si une ressource est mise à jour de telle sorte qu'une nouvelle ressource physique est créée pour remplacer l'ancienne ressource, l'ancienne ressource est complètement supprimée, y compris CloudFormation de son champ d'application.

RetainExceptOnCreate

RetainExceptOnCreate se comporte comme Retain pour les opérations de pile, à l'exception de l'opération de pile qui a initialement créé la ressource. Si l'opération de pile qui a créé la ressource est annulée, la ressource CloudFormation est supprimée. Pour toutes les autres opérations de pile, telles que la suppression de pile CloudFormation, la ressource et son contenu sont conservés. Il en résulte que les ressources nouvelles, vides et inutilisées sont supprimées, tandis que les ressources en cours d'utilisation et leurs données sont conservées. Reportez-vous à la UpdateStackAPIdocumentation pour utiliser cette politique de suppression en tant que API paramètre sans mettre à jour votre modèle.

Snapshot

Pour les ressources qui prennent en charge les instantanés, CloudFormation crée un instantané pour la ressource avant de la supprimer. CloudFormation Une fois la suppression de la pile terminée, la pile sera dans son Delete_Complete état ; toutefois, les instantanés créés avec cette politique continuent d'exister et continuent d'être soumis aux frais applicables jusqu'à ce que vous les supprimiez.

Les ressources qui prennent en charge les instantanés sont les suivantes :