我有几个由同一模板制作的 CloudFormation 堆栈,每个堆栈都包含一些 DynamoDB 表。我最近需要对 DynamoDB 表的 LSI 进行更改。当为数据库中没有任何数据的堆栈环境更新堆栈时,这很好,但是当我抽出时间来更新我们的共享开发堆栈时,我会遇到问题。 LSI 只能在创建表时创建,因此当堆栈更改 LSI 时,它必须删除并创建全新的资源,这将删除表中当前的所有数据。
我们的共享开发环境已经包含一些用于演示和测试的数据,我不想中断它。有什么方法可以在更新堆栈时从不同版本的数据库复制数据吗?我不介意有点手动的过程,比如导出所有数据并在更新后导入,但是数据太多,无法手动输入每个项目。如果我必须删除数据,这并不是世界末日,只是想知道是否有任何解决办法。
最佳答案
CloudFormation 不会自动处理此问题 - 它只管理 AWS 资源,而不管理其中的数据。
但是,有一些解决方案允许您将数据从 DynamoDB 导出到 S3 并将其导回。例如,以下两个链接展示了如何使用 AWS Data Pipelines 执行此操作:
关于amazon-web-services - AWS 云形成 : Is it possible to Update Stack to recreate DB resources without data loss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43265949/