用途:该技能面向 Terraform 模块的创建、管理与使用,提供标准化模式和最佳实践,适合新建可复用模块、把现有 Terraform 代码重构为模块、统一项目基础设施模式,以及按最佳实践实现 VPC、GKE、RDS 等具体基础设施组件。
主要能力:给出标准模块目录结构,包含 main.tf(主要逻辑与资源)、variables.tf(输入变量定义)、outputs.tf(输出值定义)、versions.tf(提供商与 Terraform 版本约束)、README.md(模块文档)和 examples/complete/(完整示例用法)。
最佳实践:GCP 方面,必要时使用 google-beta 提供商,但优先 GA;尽量遵循 Google 的 Cloud Foundation Toolkit 模式;资源命名使用标准化前后缀,如 gcp-vpc-{env}。AWS 方面,使用标准 aws 提供商资源,并为所有资源打上一致标签(Owner、Environment、Project)。通用要求包括:在 versions.tf 中固定提供商与 Terraform 版本;所有变量包含 description 和 type,并用 validation 块约束;记录所有输出;模块内不包含 backend 配置,状态由根配置管理。
使用方式:私有模块注册表需确保 source 路径符合注册表约定;本地开发或 monorepo 可使用本地模块,例如 module "network" { source = "./modules/network" }。
审查清单:模块是否有含输入/输出文档的 README.md;变量是否都有类型和描述;资源名称是否确定或作用域正确;是否包含 examples/;模块内是否避免使用 terraform_remote_state。
限制:资料未提供具体收费、价格、平台支持范围或效果数据,暂未提供。