terraform-aws-modules
构建生产就绪的 Terraform AWS 模块
创建可复用的 Terraform 基础设施既复杂又容易出错。本技能提供模块设计、状态管理和生产级 HCL 模式方面的专业指导。
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“terraform-aws-modules”。 创建一个可复用的 EKS 集群模块,包含适当的变量定义
预期结果:
提供完整的模块结构,其中 variables.tf 定义 cluster_name、node_count 和 instance_type 并带有验证规则,main.tf 包含 aws_eks_cluster 和 aws_eks_node_group 资源并使用 for_each 管理节点组,outputs.tf 导出集群端点和节点组 ARN,versions.tf 将 aws 提供商固定到 >= 4.0
正在使用“terraform-aws-modules”。 为生产环境配置状态锁定
预期结果:
返回 S3 后端配置,包含 bucket terraform-state-prod、key env/prod/terraform.tfstate、region us-east-1、DynamoDB 表 tf-state-lock、启用加密,以及初始状态导入和团队访问策略的说明
安全审计
安全Static analysis detected 25 patterns but all are false positives. External command references are Terraform CLI documentation examples (terraform fmt, validate, plan, force-unlock), not executable code. The CIDR block 10.0.0.0/16 is standard RFC1918 private networking for VPC configuration. This is documentation-only content with no executable code.
质量评分
你能构建什么
DevOps 工程师构建 VPC 模块
创建一个可复用的 VPC 模块,包含适当的变量定义、输出和标签策略,以便在不同环境间进行一致的网络部署。
平台团队设置状态管理
为生产 Terraform 状态配置带有 DynamoDB 锁定的 S3 后端,确保安全的并发操作和状态加密。
从 CloudFormation 迁移的开发者
将现有的 CloudFormation 模板转换为 Terraform HCL,并在一开始就采用适当的模块结构和状态管理。
试试这些提示
为启用版本控制的 AWS S3 存储桶创建 Terraform 模块结构。包括用于存储桶名称和版本控制标志的 variables.tf、包含资源的 main.tf、用于存储桶 ARN 和名称的 outputs.tf,以及固定 AWS 提供商版本的 versions.tf。
审查此 Terraform 模块的最佳实践和安全问题。检查是否有适当的变量验证、敏感输出标记、提供商版本固定和一致的标签策略。
为具有 dev、staging 和 production 环境的团队设计远程状态后端配置。使用 S3 进行存储并配合 DynamoDB 锁定。为每个环境包含独立的状态键并启用加密。
重构此 Terraform 配置,使用 for_each 替代 count 来管理多个子网。当前代码使用 count 配合列表索引,在移除中间元素时会导致问题。保留所有现有属性。
最佳实践
- 在 versions.tf 中固定提供商和模块版本以防止更新时出现破坏性变更
- 当资源标识必须在多次 apply 间保持稳定时使用 for_each 而非 count
- 将远程状态存储在 S3 中并启用 DynamoDB 锁定和服务器端加密
避免
- 对可能移除中间元素的资源使用 count,导致不必要的重新创建
- 将 .tfstate 文件提交到版本控制,这会暴露敏感的资源数据
- 未使用 terraform_remote_state 数据源就引用其他配置的状态