SuperAPI AI 工具集

terraform-module-library

部署与运维

查看项目

更新于 10-15 12:11

技能介绍

用途

Terraform Module Library 是一个面向 AWS、Azure 和 GCP 基础设施的生产级 Terraform 模块模式技能。其目标是创建可复用、经过良好测试的 Terraform 模块,覆盖多个云提供商的常见云基础设施模式。

适用场景包括:构建可复用的基础设施组件、标准化云资源供给、实施基础设施即代码最佳实践、创建多云兼容模块、建立组织级 Terraform 标准。

不适用场景:任务与 Terraform 模块库无关,或需要本范围之外的其它领域或工具。

主要能力

该技能提供模块目录组织方式、标准模块文件结构、AWS VPC 模块示例、最佳实践清单、模块组合示例以及 Terratest 测试示例。

模块目录结构示例:

terraform-modules/
├── aws/
│   ├── vpc/
│   ├── eks/
│   ├── rds/
│   └── s3/
├── azure/
│   ├── vnet/
│   ├── aks/
│   └── storage/
└── gcp/
    ├── vpc/
    ├── gke/
    └── cloud-sql/

标准模块模式:

module-name/
├── main.tf          # Main resources
├── variables.tf     # Input variables
├── outputs.tf       # Output values
├── versions.tf      # Provider versions
├── README.md        # Documentation
├── examples/        # Usage examples
│   └── complete/
│       ├── main.tf
│       └── variables.tf
└── tests/           # Terratest files
    └── module_test.go

使用方式

技能说明要求:明确目标、约束和所需输入;应用相关最佳实践并验证结果;提供可操作的步骤和验证方法。

AWS VPC 模块示例包含 main.tf、variables.tf 和 outputs.tf 的完整代码。main.tf 定义 aws_vpc、aws_subnet(私有子网)、aws_internet_gateway 资源;variables.tf 定义 name、cidr_block(含正则校验)、availability_zones、private_subnet_cidrs、enable_dns_hostnames、tags 等变量;outputs.tf 输出 vpc_id、private_subnet_ids、vpc_cidr_block。

模块组合示例展示如何通过 module 块引用 VPC 模块和 RDS 模块,并将 VPC 的输出(vpc_id、private_subnet_ids)传递给 RDS 模块。

测试示例使用 Terratest 编写 Go 测试,通过 terraform.InitAndApply 和 terraform.Output 验证 VPC 模块输出。

最佳实践

  • 对模块使用语义化版本控制
  • 为所有变量编写描述文档
  • 在 examples/ 目录中提供示例
  • 使用 validation 块进行输入验证
  • 输出重要属性以支持模块组合
  • 在 versions.tf 中固定提供程序版本
  • 使用 locals 处理计算值
  • 使用 count/for_each 实现条件资源
  • 使用 Terratest 测试模块
  • 为所有资源一致地打标签

适用场景

适合需要跨 AWS、Azure、GCP 构建标准化、可复用 Terraform 模块的团队,用于统一云资源供给方式、建立组织级 IaC 规范、实现多云兼容的基础设施组件。

限制

支撑材料可用性说明:本目录副本包含上述内联指导,但不包含以下支撑路径,它们是外部前置条件而非捆绑文件:

  • <support-root>/assets/vpc-module/
  • <support-root>/assets/rds-module/
  • <support-root>/references/azure-modules.md
  • <support-root>/references/gcp-modules.md

在使用依赖这些路径的步骤前,需先获取原始支撑材料或已有安装;本目录未标识这些材料的已验证下载来源。应相对于该安装解析每个路径,检查其内容,并验证适用的许可证和执行前置条件。在所需文件存在之前,不要运行命令或声称已遵循引用的过程。不要伪造缺失的脚本,也不要把同名的无关文件视为等价。此处完整记录的独立步骤可在用户授权范围内进行;任何依赖步骤应报告为不可用。

此外,仅在任务明确匹配上述范围时使用本技能;不要将输出视为环境特定验证、测试或专家审查的替代;如果缺少所需输入、权限、安全边界或成功标准,应停止并请求澄清。

相关技能:multi-cloud-architecture(用于架构决策)、cost-optimization(用于成本效益设计)。