为什么CloudFormation中的Retain DeletionPolicy不保留已更改的DynamoDB表?

时间:2016-07-06 23:31:56

标签: amazon-dynamodb amazon-cloudformation

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

然而,由于DeletionPolicy,原始表格并未“落后”,我感到很惊讶。当然,可以通过堆栈策略完全阻止更新,但是我希望DeletionPolicy会导致现在已经不存在的表从CloudFormation堆栈中弹出,并且会出现一个新的表,但实际上并不是这样。删除。

这是预期的行为吗?

2 个答案:

答案 0 :(得分:6)

是的,这是预期的行为。 DeletionPolicy仅在您实际删除整个CloudFormation堆栈时应用。 如果要在更新期间保留以前的DynamoDB表,则需要事先手动备份。您可以使用AWS Data Pipeline在Amazon S3上备份DynamoDB表。

答案 1 :(得分:0)

使用AWS属性“ UpdateReplacePolicy:保留”。