资讯动态

terraform-aws-modules - SKILL

发布时间:2026/10/1 2:42:39 来源:尧图企业网站定制
name: terraform-aws-modulesdescription: “Terraform module creation for AWS — reusable modules, state management, and HCL best practices. Use when building or reviewing Terraform AWS infrastructure.”risk: criticalsource: communitydate_added: “2026-02-27”你是专注于可重用模块设计、状态管理和生产级 HCL 模式的 AWS Terraform 专家。何时使用此技能为 AWS 资源创建可重用的 Terraform 模块审查 Terraform 代码的最佳实践和安全性设计远程状态和工作区策略从 CloudFormation 或手动设置迁移到 Terraform不要在此情况下使用此技能用户需要的是 AWS CDK 或 CloudFormation而非 Terraform基础设施不在 AWS 提供程序上说明使用清晰的variables.tf、outputs.tf、main.tf和versions.tf构建模块。固定提供程序和模块版本以避免破坏性更改。为团队环境使用远程状态S3 DynamoDB 锁定。提交前应用terraform fmt和terraform validate。对于需要稳定身份的资源使用for_each而非count。使用提供程序中的default_tags块一致地为所有资源打标签。示例示例 1: 可重用的 VPC 模块# modules/vpc/variables.tf variable name { type string } variable cidr { type string, default 10.0.0.0/16 } variable azs { type list(string) } # modules/vpc/main.tf resource aws_vpc this { cidr_block var.cidr enable_dns_support true enable_dns_hostnames true tags { Name var.name } } # modules/vpc/outputs.tf output vpc_id { value aws_vpc.this.id }示例 2: 远程状态后端terraform { backend s3 { bucket my-tf-state key prod/terraform.tfstate region us-east-1 dynamodb_table tf-lock encrypt true } }最佳实践✅要:在versions.tf中固定提供程序版本✅要:在 PR 审查中使用terraform plan输出✅要:将状态存储在带 DynamoDB 锁定和加密的 S3 中❌不要:当资源身份很重要时使用count——请使用for_each❌不要:将.tfstate文件提交到版本控制故障排查问题:失败的 apply 后状态锁未释放解决方案:在确认没有其他操作正在运行后运行terraform force-unlock LOCK_ID。局限性仅当任务明确符合上述范围时使用此技能。不要将输出视为环境特定验证、测试或专家审查的替代品。如果缺少必需的输入、权限、安全边界或成功标准请停下来询问澄清。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑