UpdateReplacePolicy-Attribut - AWS CloudFormation

UpdateReplacePolicy-Attribut

Verwenden Sie das UpdateReplacePolicy-Attribut, um die vorhandene physische Instance einer Ressource beizubehalten oder (in einigen Fällen) zu sichern, wenn sie während einer Stack-Aktualisierung ersetzt wird.

Wenn Sie eine Stack-Aktualisierung initiieren, aktualisiert AWS CloudFormation Ressourcen basierend auf den Unterschieden zwischen dem, was Sie senden, und der aktuellen Vorlage und den aktuellen Parametern des Stacks. Wenn Sie eine Ressourceneigenschaft aktualisieren, die eine Ressourcenersetzung erfordert, erstellt CloudFormation die Ressource bei der Aktualisierung erneut. Wenn die Ressource neu erstellt wird, wird eine neue physische ID generiert. CloudFormation erstellt zunächst die Ersatzressource und ändert dann Referenzen von anderen abhängigen Ressourcen so, dass sie auf die Ersatzressource zeigen. Die alte Ressource wird dann standardmäßig von CloudFormation gelöscht. Sie können mit UpdateReplacePolicy angeben, dass CloudFormation einen Snapshot der alten Ressource beibehalten oder (in einigen Fällen) erstellen soll.

Bei Ressourcen, die Snapshots unterstützen, wie beispielsweise AWS::EC2::Volume, geben Sie Snapshot an. Auf diese Weise erstellt CloudFormation einen Snapshot, bevor die alte Ressourcen-Instance gelöscht wird.

Sie können das UpdateReplacePolicy-Attribut auf beliebige Ressourcen anwenden. UpdateReplacePolicy wird nur ausgeführt, wenn Sie eine Ressourceneigenschaft aktualisieren, für deren Aktualisierungsverhalten Ersatz angegeben ist. Dadurch ersetzt CloudFormation die alte Ressource durch eine neue mit einer neuen physischen ID. Wenn Sie beispielsweise die Engine-Eigenschaft eines AWS::RDS::DBInstance-Ressourcentyps aktualisieren, erstellt CloudFormation eine neue Ressource und ersetzt die aktuelle DB-Instance-Ressource durch die neue. Das UpdateReplacePolicy-Attribut gibt dann vor, ob CloudFormation einen Snapshot der alten DB-Instance löscht, beibehält oder erstellt. Das Aktualisierungsverhalten für jede Eigenschaft einer Ressource ist im Referenzthema zur jeweiligen Ressource in der AWS-Ressourcen- und Eigenschaftstypen – Referenz angegeben. Weitere Informationen zum Verhalten von Ressourcenaktualisierungen finden Sie unter Aktualisieren von Verhalten von Stack-Ressourcen.

Das UpdateReplacePolicy-Attribut gilt für direkt ausgeführte Stack-Aktualisierungenund für Stack-Aktualisierungen, die mithilfe von Änderungssätzen ausgeführt werden.

Anmerkung

Beibehaltene Ressourcen bleiben so lange erhalten und verursachen so lange weitere Gebühren, bis Sie diese Ressourcen löschen. Snapshots, die mit dieser Richtlinie erstellt wurden, bleiben erhalten und verursachen weiterhin Gebühren, bis Sie diese Snapshots löschen. UpdateReplacePolicy behält die alte physische Ressource oder den alten physischen Snapshot bei, entfernt sie bzw. ihn jedoch aus dem Geltungsbereich von CloudFormation.

UpdateReplacePolicy unterscheidet sich darin vom DeletionPolicy-Attribut, dass es nur auf Ressourcen angewendet wird, die während Stack-Aktualisierungen ersetzt werden. Verwenden Sie DeletionPolicy für Ressourcen, die gelöscht werden, wenn ein Stack gelöscht wird, oder wenn die Ressourcendefinition im Rahmen einer Stack-Aktualisierung selbst aus der Vorlage gelöscht wird.

Das folgende Snippet enthält eine Amazon RDS-Datenbank-Instance-Ressource mit einer Retain-Richtlinie für Ersetzungen. Wenn diese Ressource durch eine neue Ressource mit einer neuen physischen ID ersetzt wird, bleibt die alte Datenbank-Instance erhalten und wird nicht von CloudFormation gelöscht.

JSON

{ "AWSTemplateFormatVersion" : "2010-09-09", "Resources" : { "myDB" : { "Type" : "AWS::RDS::DBInstance", "DeletionPolicy" : "Retain", "UpdateReplacePolicy" : "Retain", "Properties" : {} } } }

YAML

AWSTemplateFormatVersion: 2010-09-09 Resources: myDB: Type: 'AWS::RDS::DBInstance' DeletionPolicy: Retain UpdateReplacePolicy: Retain Properties: {}

Optionen für UpdateReplacePolicy

Delete

CloudFormation löscht die Ressource und alle Inhalte, falls zutreffend, während der Ressourcenersetzung. Sie können diese Richtlinie jedem Ressourcentyp hinzufügen. Wenn Sie kein angeben UpdateReplacePolicy, werden Ihre Ressourcen standardmäßig von CloudFormation gelöscht. Dabei sollten Sie allerdings Folgendes beachten:

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

Beibehalten

CloudFormation behält die Ressource bei, ohne die Ressource oder deren Inhalte zu löschen, wenn die Ressource ersetzt wird. Sie können diese Richtlinie jedem Ressourcentyp hinzufügen. Beibehaltene Ressourcen bleiben so lange erhalten und verursachen so lange weitere Gebühren, bis Sie diese Ressourcen löschen.

Wenn eine Ressource ersetzt wird, behält UpdateReplacePolicy die alte physische Ressource bei, entfernt diese jedoch aus dem Geltungsbereich von CloudFormation.

Snapshot

Bei Ressourcen, die Snapshots unterstützen, fertigt CloudFormation vor dem Löschen einen Screenshot der Ressource an. Mit dieser Richtlinie erstellte Snapshots bleiben so lange erhalten und verursachen so lange weitere Gebühren, bis Sie diese Snapshots löschen.

Anmerkung

Wenn Sie die Option Snapshot in der UpdateReplacePolicy für eine Ressource angeben, die keine Snapshots unterstützt, kehrt CloudFormation zur Standardoption zurück, die Delete ist.

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