为什么 CloudFormation 中的保留删除策略不保留已更改的 DynamoDB 表?



我正在使用CloudFormation来构造一个AWS::DynamoDB::Table资源,并且我DeletionPolicy设置为Retain。假设我更改了此逻辑资源的AttributeDefinitions属性,例如重命名哈希键,然后执行 CloudFormation update_stack ;这种更改需要"替换"资源。目前为止,一切都好;我希望现有的 DynamoDB 表被"删除",并使用更改的键定义在其位置创建一个新表。

但是,我很惊讶原始表并没有因为DeletionPolicy而"落后"。当然,可以通过堆栈策略完全阻止更新,但我希望删除策略会导致现已失效的表从 CloudFormation 堆栈中弹出,并在其位置出现一个新表,但实际上并没有被删除。

这是预期行为吗?

是的,这是预期的行为。

仅当您实际删除整个 CloudFormation 堆栈时,才会应用该DeletionPolicy

来源:删除政策@docs.aws.amazon.com

如果要在更新期间保留以前的 DynamoDB 表,则需要事先手动备份。您可以使用 AWS 数据管道在 Amazon S3 上备份您的 DynamoDB 表。

使用 AWS 属性"UpdateReplacePolicy: Retain"。

相关内容

  • 没有找到相关文章

最新更新