Terraform Patterns 是一套 Terraform 基础设施即代码的最佳实践参考,适用于编写 Terraform 配置、创建模块、管理状态或设计 IaC 时查阅。
用途:帮助组织 Terraform 项目结构、设计可复用模块、配置远程状态后端与锁、编写多区域 Provider、使用数据源与条件资源,并集成测试与 CI/CD。
主要能力: 项目结构建议采用 infrastructure/ 下分 modules/、environments/(dev、staging、prod)、global/ 与 scripts/ 的目录布局。 模块设计给出可复用 VPC 模块示例,包含变量校验、common_tags 合并、子网 count 与 cidrsubnet 计算,以及 vpc_id、public_subnet_ids 等 outputs。 状态管理给出 S3 远程后端配置(bucket、key、region、encrypt、dynamodb_table、role_arn),以及创建带版本控制、KMS 加密与 DynamoDB 锁表的 state 后端资源。 Provider 部分涵盖多区域设置(含 alias)、default_tags 与 required_version/required_providers 版本约束。 还包含数据源查询(aws_vpc、aws_ami、aws_caller_identity、aws_region)、条件资源 count、dynamic 块、lifecycle 规则,以及 Terratest 的 Go 测试示例和 GitHub Actions 的 plan/apply 流水线示例。
使用方式:按示例组织目录与模块文件,在 environments 中各环境分离 tfvars 与 backend.tf;通过 terraform init、terraform plan、terraform apply 操作;测试使用 Terratest,CI 使用 hashicorp/setup-terraform。
适用场景:需要在 AWS 上以 Terraform 管理 VPC、计算、数据库等基础设施,并希望统一模块、状态与发布流程的团队。
限制:资料以 AWS 示例为主,未提供其他云厂商的具体示例;未说明收费、价格或平台支持信息;具体命令与代码需按自身环境调整,缺失信息暂未提供。