DeletionPolicy Attribut - AWS CloudFormation

Dies ist das neue CloudFormation Template Reference Guide. Bitte aktualisieren Sie Ihre Lesezeichen und Links. Hilfe bei den ersten Schritten mit CloudFormation finden Sie im AWS CloudFormation Benutzerhandbuch.

DeletionPolicy Attribut

Mit dem DeletionPolicy-Attribut können Sie eine Ressource beibehalten und in einigen Fällen sichern, wenn deren Stack gelöscht wird. Sie können ein DeletionPolicy-Attribut für jede Ressource angeben, die Sie kontrollieren wollen. Falls eine Resource kein DeletionPolicy-Attribut aufweist, löscht CloudFormation die Ressource standardmäßig.

Diese Funktion gilt auch für Stack-Aktualisierungsoperationen, die dazu führen, dass Ressourcen in Stacks gelöscht werden. Dies ist der Fall, wenn Sie zum Beispiel die Ressource aus der Stack-Vorlage entfernen und dann den Stack mit der Vorlage aktualisieren. Diese Funktion gilt nicht für Ressourcen, deren physische Instance während der Stack-Aktualisierungsoperationen ersetzt wird. Wenn Sie beispielsweise die Eigenschaften einer Ressource so bearbeiten, dass CloudFormation diese Ressource während einer Stack-Aktualisierung ersetzt.

Anmerkung

Ausnahme: Die Standardrichtlinie ist Snapshot für AWS::RDS::DBCluster-Ressourcen und für AWS::RDS::DBInstance-Ressourcen, die die Eigenschaft DBClusterIdentifier nicht angeben.

Um eine Ressource beizubehalten, wenn deren Stack gelöscht wird, geben Sie Retain für diese Ressource an. Sie können Retain für alle beliebigen Ressourcen verwenden. Sie können beispielsweise einen verschachtelten Stack, Amazon S3-Bucket oder eine EC2-Instance beibehalten, sodass Sie diese Ressourcen nach Löschung der Stacks weiterhin verwenden oder ändern können.

Anmerkung

Wenn Sie Ressourcen außerhalb von CloudFormation ändern möchten, verwenden Sie eine Retain-Richtlinie zur Löschung und löschen Sie den Stack. Andernfalls ist es möglich, dass Ihre Ressourcen die Synchronisierung mit Ihrer CloudFormation-Vorlage verlieren und Stack-Fehler verursachen.

Bei Ressourcen, die Snapshots unterstützen, wie beispielsweise AWS::EC2::Volume, legen Sie Snapshot so fest, dass CloudFormation einen Snapshot anfertigt, bevor die Ressource gelöscht wird.

Das folgende Snippet enthält eine Amazon S3-Bucket-Ressource mit einer Retain-Löschrichtlinie. Wird dieser Stack gelöscht, verlässt CloudFormation den Bucket, ohne ihn zu löschen.

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

DeletionPolicy-Optionen

Delete

CloudFormation löscht die Ressource und alle Inhalte, sofern möglich, während der Löschung des Stapels. Sie können diese Löschungs-Richtlinie jedem Ressourcentyp hinzufügen. Wenn Sie keine DeletionPolicy angeben, werden Ihre Ressourcen standardmäßig von CloudFormation gelöscht. Dabei sollten Sie allerdings Folgendes beachten:

  • Für AWS::RDS::DBCluster-Ressourcen ist die Standardrichtlinie Snapshot.

  • Für AWS::RDS::DBInstance-Ressourcen, die die DBClusterIdentifier-Eigenschaft nicht angeben, ist die Standardrichtlinie Snapshot.

  • Bei Amazon S3-Buckets müssen Sie alle Objekte innerhalb des Buckets löschen, damit die Löschung erfolgreich ausgeführt werden kann.

Anmerkung

Das Standardverhalten von CloudFormation besteht darin, das Secret mit dem ForceDeleteWithoutRecovery-Flag zu löschen.

Retain

CloudFormation behält die Ressource ohne Löschung der Ressource oder ihrer Inhalte bei, wenn ihr Stack gelöscht wird. Sie können diese Löschungs-Richtlinie jedem Ressourcentyp hinzufügen. Bei Abschluss der Stack-Löschung durch CloudFormation wird der Stack den Zustand Delete_Complete aufweisen; beibehaltene Ressourcen bestehen jedoch weiterhin und es werden Gebühren anfallen, bis sie diese Ressourcen löschen.

Für Aktualisierungen sind die folgenden Aspekte zu berücksichtigen:

  • Wenn eine Ressource gelöscht wird, behält DeletionPolicy die physische Ressource bei, löscht sie aber aus dem Geltungsbereich von CloudFormation.

  • Wenn eine Ressource so aktualisiert wird, dass eine neue physische Ressource erstellt und die alte Ressource ersetzt wird, wird die alte Ressource vollständig gelöscht, auch aus dem Geltungsbereich von CloudFormation.

RetainExceptOnCreate

RetainExceptOnCreate verhält sich wie Retain bei Stack-Vorgängen, mit Ausnahme des Stack-Vorgangs, mit dem die Ressource ursprünglich erstellt wurde. Wenn der Stack-Vorgang, mit dem die Ressource erstellt wurde, zurückgesetzt wird, löscht CloudFormation die Ressource. Für alle anderen Stack-Vorgänge, z. B. das Löschen von Stacks, behält CloudFormation die Ressource und ihren Inhalt bei. Dadurch werden neue, leere und ungenutzte Ressourcen gelöscht, während genutzte Ressourcen und ihre Daten beibehalten werden. Informationen zur Verwendung dieser Löschrichtlinie als API-Parameter, ohne Ihre Vorlage zu aktualisieren, finden Sie in der API-Dokumentation zu UpdateStack.

Snapshot

Bei Ressourcen, die Snapshots unterstützen, fertigt CloudFormation vor dem Löschen einen Screenshot der Ressource an. Bei Abschluss der Stack-Löschung durch CloudFormation wird der Stack den Zustand Delete_Complete aufweisen; die mit dieser Richtlinie erstellten Snapshots bestehen jedoch weiterhin und es werden Gebühren anfallen, bis sie diese Snapshots löschen.

Zu den Ressourcen, die Snapshots unterstützen, gehören: