← 中文资源

简体中文版本

Terraform 模块抽取工作流

识别重复资源模式、抽取接口清晰的模块、逐个迁移消费方,并在移动状态前校验计划。

阅读英文原文

概述

重复的 Terraform 配置会让每处修改都要同步多份并逐渐分叉。识别重复模式并定义模块接口、实现并文档化输入输出、先迁移一个消费方并在移动状态后确认计划为空、再分批迁移其余,可在不改变基础设施的前提下消除重复。

关键步骤

  1. 识别重复模式并定义模块接口。
  2. 实现模块并文档化输入输出。
  3. 迁移一个消费方并验证移动状态后计划为空。
  4. 分批迁移其余并删除重复配置。

验证

  • 每个消费方迁移后计划无变更。
  • 模块按版本固定。
  • 输入输出有文档。
  • 旧配置归档。

决策点

应移动状态而非重建资源,除非资源可安全重建且可弃;模块应以单一清晰模式为界,多功能模块会滋生难懂接口与隐式耦合。

适用范围

本条目围绕「Terraform 模块抽取工作流」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。

module "service" {
  source  = "git::https://github.com/acme/tf-service.git?ref=v1.2.0"
  name    = "orders"
  cpu     = 512
}
# terraform state mv ... then plan must be empty