UpdateReplacePolicy 属性 - AWS CloudFormation

UpdateReplacePolicy 属性

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

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

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

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

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

注意

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

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

以下代码段包含具有 Retain 替换策略的 Amazon RDS 数据库实例资源。当该资源被具有新的物理 ID 的新资源替换时,AWS 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 选项

删除

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

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

保留

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

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

快照

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

注意

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

支持快照的资源包括: