UpdateReplacePolicy 属性 - Amazon CloudFormation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

UpdateReplacePolicy 属性

当资源在堆栈更新操作期间被替换时,使用 UpdateReplacePolicy 属性保留或(在某些情况下)备份资源的现有物理实例。

启动堆栈更新时,Amazon CloudFormation 会根据您提交的内容与堆栈当前模板和参数之间的差异更新资源。如果您更新了一个资源属性,而该属性要求替换资源,则 CloudFormation 会在更新期间重新创建该资源。重建创建资源会生成一个新的物理 ID。CloudFormation 首先创建替换资源,然后更改来自其他依赖资源的引用,以指向替换资源。默认情况下,CloudFormation 接下来会删除旧资源。您可以使用 UpdateReplacePolicy 指定 CloudFormation 保留或(在某些情况下)创建旧资源的快照。

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

您可以将 UpdateReplacePolicy 属性应用于任何资源。只有当您更新一个资源属性,而其更新行为被指定为替换时,才执行 UpdateReplacePolicy,进而促使 CloudFormation 用具有新物理 ID 的新资源替换旧资源。例如,如果您更新 AWS::RDS::DBInstance 资源类型的 Engine 属性,则 CloudFormation 会创建新资源并将当前数据库实例资源替换为新资源。然后,UpdateReplacePolicy 属性会指示 CloudFormation 是已删除、保留还是创建了旧数据库实例的快照。资源的每个属性的更新行为会在 Amazon 资源和属性类型参考中有关该资源的参考主题中指定。有关资源更新行为的更多信息,请参阅堆栈资源的更新行为

UpdateReplacePolicy 属性应用于您直接执行的堆栈更新和使用更改集执行的堆栈更新。

注意

保留的资源继续存在并继续产生相应费用,直到您删除它们为止。使用该策略创建的快照继续存在并继续产生相应费用,直到您删除它们为止。UpdateReplacePolicy 保留旧的物理资源或快照,但将其从 CloudFormation 的范围内删除。

UpdateReplacePolicy不同于 DeletionPolicy 属性,它仅适用于堆栈更新过程中替换的资源。对于在删除堆栈时被删除的资源,或者从模板删除资源定义本身时被删除的资源(作为堆栈更新的一部分),使用 DeletionPolicy

以下代码段包含具有 Retain 替换策略的 Amazon RDS 数据库实例资源。当该资源被具有新物理 ID 的新资源替换时,CloudFormation 保留旧的数据库实例而不删除它。

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: {}

UpdateReplacePolicy 选项

Delete

在资源替换期间,CloudFormation 删除资源及其所有内容(如适用)。您可以向任何资源类型添加此策略。默认情况下,如果不指定 UpdateReplacePolicy,CloudFormation 将删除您的资源。但是,应注意下列事项:

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

Retain

当资源被替换时,CloudFormation 保留资源而不删除资源或其内容。您可以向任何资源类型添加此策略。保留的资源继续存在并继续产生相应费用,直到您删除它们为止。

如果资源被替换,UpdateReplacePolicy 虽然保留旧的物理资源,但会从 CloudFormation 的范围中将其删除。

Snapshot

对于支持快照的资源,CloudFormation 在删除资源之前为其创建快照。使用该策略创建的快照继续存在并继续产生相应费用,直到您删除它们为止。

注意

如果您在 UpdateReplacePolicy 中为不支持快照的资源指定 Snapshot 选项,CloudFormation 会还原为默认选项,即 Delete

支持快照的资源包括: