【问题标题】:Restoring a DynamoDB table using PITR and updating Cloudformation/CDK/other services references使用 PITR 恢复 DynamoDB 表并更新 Cloudformation/CDK/其他服务参考
【发布时间】:2023-01-27 23:15:18
【问题描述】:
我有一个环境,在这个环境中,我的 DynamoDB 表是一些服务(几个 lambdas、kinesis 和 firehoses)的中心。所有这些都由 AWS 的 CloudFormation/Typescript CDK 管理。
该表启用了 PITR,据我所知,只有将恢复的数据转储到新表中才能执行 PITR。这是痛苦开始的地方:
- 创建新表后 AWS 的文档不存在!
- 如何更新所有其他服务上新表的引用?
- 我应该只“擦除”我的旧表并导入恢复的表吗?
- 这是否意味着我需要关闭我的服务才能恢复它?
- 这里的“标准”或“最佳实践”是什么?
非常感谢社区! :D
【问题讨论】:
标签:
amazon-web-services
amazon-dynamodb
amazon-cloudformation
aws-cdk
pitr
【解决方案1】:
是的,您必须恢复到新表。有一些方法可以解决您描述的问题。首先,当您恢复到一个新表时,您需要将 import that resource 添加到您的 CDK 堆栈。
使用参数 Store 保存表的最新名称,所有下游应用程序将通过查询参数存储来解析表名。
将表名动态设置为 lambda 的环境变量,与其他方法相比,这将减少延迟,但它仅适用于 Lambda 或允许您设置环境变量的服务。
完整性的内联答案
创建新表后 AWS 的文档是不存在的!
如果您认为缺少相关信息,请直接在文档页面上分享反馈。
如何更新所有其他服务上新表的引用?
上面提到的2个选项是最常见的方法。
我应该只“擦除”我的旧表并导入恢复的表吗?
这将导致应用程序停机,如果您负担得起,那么这将是一种简单的方法。如果没有,请遵循上述建议。
这是否意味着我需要关闭我的服务才能恢复它?这里的“标准”或“最佳实践”是什么?
是的,如上所述。