用途
该技能面向已掌握 Terraform 语法的使用者,帮助判断何时应将内联 Terraform 代码抽取为可复用模块、如何确定模块边界,以及模块化后如何安全迁移状态。它不讲解 Terraform 基础语法,而是聚焦“何时模块化、何时保持内联”的决策。
主要能力
- 提供核心决策树:按使用次数、配置相似度、团队归属、合规要求等条件判断是否模块化。
- 给出抽取前的战略检查表,包括使用次数、相似度、变更频率、测试覆盖率、消费者数量等阈值。
- 识别并纠正常见反模式:泄漏抽象、状态迁移陷阱、模块版本地狱。
- 提供模块边界划分原则:按生命周期、团队归属划分较好;按技术类型、资源类型划分较差。
- 提供重构检查清单,涵盖确认使用次数、比较配置差异、设计意图接口、备份状态、逐资源迁移、验证计划等步骤。
- 说明何时加载 references/error-recovery.md,以及何时不需要加载。
使用方式
技能以决策树和检查清单形式组织。使用者先根据“核心决策”判断是否模块化,再通过“抽取前战略检查”确认风险,然后按“重构检查清单”执行。关键操作包括:
- 使用 grep 确认资源出现次数。
- 使用 diff 比较不同使用处的配置相似度。
- 围绕意图设计模块接口,而非直接暴露资源参数。
- 执行
terraform state pull > backup.tfstate备份状态。 - 使用
terraform state mv <old-address> <new-address>逐资源迁移。 - 运行
terraform plan,必须显示 “No changes” 才能继续。
适用场景
- 决定是否将 Terraform 代码抽取为可复用模块。
- 确定模块边界。
- 模块化后迁移状态。
- 识别和修复泄漏抽象、状态迁移陷阱、模块版本地狱等问题。
- 在合规或安全要求下需要统一执行点时立即模块化。
限制
- 假设使用者已了解 Terraform 语法,不提供语法帮助。
- 不适用于基础模块化决策之外的简单场景;单资源状态移动可直接使用重构检查清单。
- 若状态迁移已应用并导致资源销毁重建,需加载 references/error-recovery.md。
- 模块是否值得抽取的盈亏平衡点为:4 次以上相同使用 + 稳定 API + 合规需求。
- 时间成本:简单模块约 2 小时;复杂模块含状态迁移约 2 天规划 + 4 小时执行。
- 资料未提供具体收费、价格、平台或效果信息。