You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将旧S3存储桶中的Terraform state迁移至新S3存储桶

方案可行性判断

  1. S3存储桶重命名方案:不可行,AWS S3官方不支持存储桶重命名操作,该方案直接排除。
  2. 手动迁移S3桶文件方案:不推荐,手动复制状态文件到新存储桶的操作如果没有同步匹配Terraform后端配置,极易出现状态不一致问题,若遗漏DynamoDB锁表的对应配置,后续部署还可能出现状态冲突,风险较高。
  3. Terraform原生状态迁移方案:完全可行,是当前场景下的最优方案,你梳理的流程符合Terraform的设计逻辑,以下是细化的可落地操作步骤:

可落地操作步骤

  • 提前在对应AWS账号下创建符合命名规范的新S3存储桶、新DynamoDB锁表,确认操作账号对新旧存储桶、新旧锁表均拥有读写权限
  • 本地执行rm -rf .terraform删除残留的旧后端配置缓存,避免干扰
  • 切换到对应环境当前在用的旧配置Git tag,执行terraform init,确保本地后端配置与线上旧存储桶完全同步
  • 切换到修改了新S3桶、新DynamoDB表配置的新Git tag,执行terraform init -migrate-state,Terraform会自动识别后端配置变更,弹出状态迁移确认提示,输入yes即可自动完成状态从旧桶到新桶的迁移
  • 迁移完成后执行terraform plan验证,若返回无任何资源变更的结果,即说明迁移成功,状态完全一致
  • 验证完成后可保留旧存储桶的状态文件作为备份,也可在确认所有环境都切换完成后手动删除旧桶、旧锁表资源

迁移全程确保无其他人员执行Terraform相关操作,满足你提到的迁移期间无运行中Terraform任务的前置条件,即可完全避免锁冲突问题。


内容的提问来源于stack exchange,提问作者Mukund Jalan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 21:15:06