Terraform Engineer 是一个专注于基础设施即代码(IaC)的 Terraform 技能,覆盖 AWS、Azure 和 GCP 三大云平台,定位为资深 Terraform 工程师,强调模块化设计、状态管理和生产级模式。
用途 该技能用于在 AWS、Azure 或 GCP 上以 Terraform 实现基础设施即代码,尤其适合模块开发(创建可复用模块、管理模块接口)等任务。
主要能力与核心工作流 技能内置一套结构化工作流:
- 分析基础设施:审查需求、现有代码与云平台。
- 设计模块:创建可组合、带校验、接口清晰的模块。
- 实现状态:配置带锁定与加密的远程后端。
- 加固基础设施:应用安全策略、最小权限与加密。
- 校验:运行 terraform fmt 与 terraform validate,然后运行 tflint;若报告错误则修复并重新运行,直到所有检查干净通过后再继续。
- 计划与审查:运行 terraform plan -out=tfplan,并提取计划摘要,突出创建、更新、删除,尤其是破坏性操作(重建或删除);若计划失败,参考错误恢复流程。
- 审批与应用:向用户展示计划摘要并请求明确批准,仅在收到确认后执行 terraform apply tfplan;若未获批准,或存在破坏性变更而用户未明确接受,则拒绝应用。
错误恢复
- 校验失败(第 5 步):修复报告的错误 → 重新运行 terraform validate → 重复直到干净。对于 tflint 警告,在继续前处理规则违规。
- 计划失败(第 6 步):
- 状态漂移:运行 terraform refresh 使状态与真实资源一致,或使用 terraform state rm / terraform import 重新对齐特定资源,然后重新计划。
- Provider 认证错误:验证凭据、环境变量与 provider 配置块;若 provider 插件过期,重新运行 terraform init,然后重新计划。
- 依赖/顺序错误:添加显式 depends_on 引用或重构模块输出以解决未知值,然后重新计划。
- 任何修复后,返回第 5 步重新校验,再重新运行计划。
参考指南 技能按上下文加载详细指引:模块(references/module-patterns.md,创建模块、输入/输出、版本管理时加载)、状态(references/state-management.md,远程后端、锁定、工作区、迁移时加载)、Provider(references/providers.md,AWS/Azure/GCP 配置与认证时加载)、测试(references/testing.md,terraform plan、terratest、策略即代码时加载)、最佳实践(references/best-practices.md,DRY 模式、命名、安全、成本跟踪时加载)。
约束 必须做:使用语义化版本并固定 provider 版本;启用带锁定与加密的远程状态;使用 validation 块校验输入;使用一致的命名约定并为所有资源打标签;记录模块接口;运行 terraform fmt 与 terraform validate。 不得做:以明文存储密钥或硬编码环境特定值;生产环境使用本地状态或跳过状态锁定;在无约束的情况下混用 provider 版本;创建循环模块依赖或跳过输入校验;提交 .terraform 目录。
代码示例 最小模块结构包含 main.tf(定义 aws_s3_bucket 资源,使用 var.bucket_name 与 var.tags)、variables.tf(定义 bucket_name 变量并带 validation 条件 length(var.bucket_name) > 3,以及 tags 变量,类型 map(string),默认 {})、outputs.tf(输出 bucket_id,值为 aws_s3_bucket.this.id)。 远程后端配置(S3 + DynamoDB)示例:backend "s3" 中设置 bucket、key、region、encrypt = true、dynamodb_table。 Provider 版本固定示例:required_version = ">= 1.5.0",required_providers 中 aws 来源 hashicorp/aws、版本 ~> 5.0,azurerm 来源 hashicorp/azurerm、版本 ~> 3.0。
输出格式 实现 Terraform 方案时,提供:模块结构(main.tf、variables.tf、outputs.tf)、后端与 provider 配置、带 tfvars 的示例用法,以及设计决策的简要说明。
适用场景 适合需要编写可复用 Terraform 模块、配置远程后端与状态锁定、审查 terraform plan 破坏性变更、在 AWS/Azure/GCP 上以生产级模式管理基础设施的工程任务。
限制 资料未提供该技能的收费、价格、平台支持范围、性能效果等具体信息,暂未提供。