如何在Terraform中导入包含副本的已有DynamoDB表?
解决DynamoDB副本导入问题的步骤
当你导入带副本的DynamoDB表时,主表和嵌套的replica资源需要分别导入,因为Terraform将副本视为独立的子资源。按以下步骤操作即可避免副本被删除重建:
确认主表已导入
你已执行过主表导入命令,先验证主表是否在Terraform状态中:terraform state show aws_dynamodb_table.GameScores此时输出不会包含replica相关信息,属于正常现象。
单独导入副本资源
DynamoDB副本的导入格式为主资源标识.replica[索引],索引从0开始(你的配置中仅一个副本,所以用[0]),导入ID格式为主表名称:副本区域。执行命令:terraform import aws_dynamodb_table.GameScores.replica[0] GameScores:us-east-2验证副本已纳入状态管理
再次查看状态信息,确认replica已存在:terraform state show aws_dynamodb_table.GameScores此时输出应包含你配置中
replica块的所有属性。确认配置与基础设施一致
执行terraform plan,如果输出显示No changes. Your infrastructure matches the configuration.,说明副本已被正确管理,不会被删除重建。
额外说明
- 若配置中有多个副本,需按索引依次导入(如第二个副本用
replica[1]),每个副本的导入ID格式均为主表名:对应区域。 - 确保导入时的区域与Terraform配置中的
region值完全一致,避免因区域不匹配导致的变更。
内容的提问来源于stack exchange,提问作者kaushalpranav
相关产品推荐
相关产品推荐

