AWS CloudFormation
User Guide (API Version 2010-05-15)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

DeletionPolicy 属性

利用 DeletionPolicy 属性,您可以在某个资源的堆栈被删除时保留或(在某些情况下)备份该资源。您可为要控制的每个资源指定 DeletionPolicy 属性。默认情况下,如果某个资源不具有 DeletionPolicy 属性,AWS CloudFormation 将删除该资源。请注意,此功能也适用于会导致资源被删除的更新操作。

注意

例外:对于 AWS::RDS::DBCluster 资源以及没有指定 DBClusterIdentifier 属性的 AWS::RDS::DBInstance 资源,默认策略是 Snapshot

要在某个资源的堆栈被删除时保留该资源,请为其指定 Retain。您可以对任何资源使用保留。例如,您可以保留嵌套堆栈、Amazon S3 存储桶或 EC2 实例,以便在删除这些资源的堆栈后继续使用或修改这些资源。

注意

如果要修改 AWS CloudFormation 外部的资源,请使用保留策略,然后删除堆栈。否则,您的资源可能与 AWS CloudFormation 模板不同步并导致堆栈错误。

对于支持快照的资源 (例如 AWS::EC2::Volume),您可以指定 Snapshot 以便让 AWS CloudFormation 在删除资源前创建快照。

以下代码段包含具有 Retain 删除策略的 Amazon S3 存储桶资源。此堆栈被删除时,AWS CloudFormation 将保留该存储桶,不将其删除。

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

DeletionPolicy 选项

删除

在堆栈删除过程中,AWS CloudFormation 将删除资源及其所有内容(如果适用)。您可以向任何资源类型添加此删除策略。默认情况下,如果不指定 DeletionPolicy,AWS CloudFormation 将删除您的资源。但应了解以下注意事项:

  • 对于 AWS::RDS::DBCluster 资源,默认策略是 Snapshot

  • 对于没有指定 DBClusterIdentifier 属性的 AWS::RDS::DBInstance 资源,默认策略是 Snapshot

  • 对于 Amazon S3 存储桶,您必须删除存储桶中的所有对象才能成功完成删除。

保留

AWS CloudFormation 在其堆栈被删除时将保留资源,而不删除资源或其内容。您可以向任何资源类型添加此删除策略。请注意,AWS CloudFormation 完成堆栈删除后,堆栈将处于 Delete_Complete 状态,但保留的资源将继续存在,并且仍将产生相应费用,直到您删除这些资源。

对于更新操作,应注意以下事项:

  • 如果某个资源被删除,则 DeletionPolicy 会保留物理资源,但确保该资源已从 AWS CloudFormation 的范围中删除。

  • 如果要更新某个资源,则创建新的物理资源来替换旧资源,然后彻底删除旧资源,包括从 AWS CloudFormation 的范围中删除。

快照

对于支持快照(AWS::EC2::VolumeAWS::ElastiCache::CacheClusterAWS::ElastiCache::ReplicationGroupAWS::RDS::DBInstanceAWS::RDS::DBClusterAWS::Redshift::Cluster)的资源,AWS CloudFormation 在删除它之前将为它创建快照。请注意,AWS CloudFormation 完成堆栈删除后,堆栈将处于 Delete_Complete 状态,但采用此策略创建的快照将继续存在,并且仍将产生相应费用,直到您删除这些快照。

本页内容: