一键导入
infrastructure-as-code
基础设施即代码实践,覆盖 Terraform / Pulumi / CloudFormation。关注状态管理、模块化设计、drift 检测、环境一致性、变更审计。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
基础设施即代码实践,覆盖 Terraform / Pulumi / CloudFormation。关注状态管理、模块化设计、drift 检测、环境一致性、变更审计。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
设计 API 认证鉴权和权限矩阵时使用。适用于多角色系统、租户隔离、字段级权限。优先使用 OAuth 2.0 / JWT + RBAC + 资源归属检查。
设计具体 API 端点时使用。适用于资源建模后的下一步、列端点清单、HTTP 方法和状态码选择。优先使用 RFC 7231 HTTP 语义 + GitHub REST 命名规范。
设计 API 错误码和错误结构时使用。适用于错误响应规范、调用方错误处理、调试可观测。优先使用 RFC 7807 Problem Details + 业务错误码 + 调用方处理建议。
设计幂等接口和重试策略时使用。适用于支付、扣减、订单、关键写操作。优先使用 Idempotency-Key + 业务去重键 + 并发冲突处理(ETag/版本号)。
输出 OpenAPI 契约和 Mock 服务时使用。适用于 API 设计的最后一步、给前端/后端/QA 的交付。优先使用 OpenAPI 3.1 + Mock 数据覆盖所有路径 + 详细的下游交接清单。
设计列表接口的分页、筛选、排序、搜索时使用。适用于所有列表 API。优先使用 cursor 分页(大数据)或 offset 分页(小数据)+ 统一筛选/排序规范。
| name | infrastructure-as-code |
| description | 基础设施即代码实践,覆盖 Terraform / Pulumi / CloudFormation。关注状态管理、模块化设计、drift 检测、环境一致性、变更审计。 |
参考来源:Terraform 官方文档、Pulumi 文档、AWS CloudFormation 文档、HashiCorp Best Practices、Infrastructure as Code(Kief Morris)。
1. 声明式优先
描述期望状态,不描述步骤
工具负责收敛到目标状态
2. 状态集中管理
远程 backend(S3 / GCS / Terraform Cloud)
状态锁防止并发修改
3. 模块化复用
通用组件抽成模块
模块有版本 + 文档
4. 环境隔离
每环境独立状态文件
变量文件区分环境差异
5. 变更可审计
PR 触发 plan → 人工审批 → apply
所有变更有记录
6. 最小权限
IaC 执行角色只有必要权限
不使用 admin 角色
7. 不可变基础设施
修改 = 替换,不原地修改
减少配置漂移
1. 规划基础设施
- 画架构图(VPC / 子网 / 安全组)
- 确定资源依赖关系
- 选择 IaC 工具
2. 初始化项目结构
- 目录按环境 / 层分离
- 配置远程 backend
- 设置状态锁
3. 编写模块
- 网络层(VPC / Subnet / NAT)
- 计算层(EKS / ECS / EC2)
- 数据层(RDS / ElastiCache / S3)
- 安全层(IAM / SG / KMS)
4. 环境变量化
- terraform.tfvars 按环境
- 敏感值从 Vault / SSM 读取
- 输出值供下游使用
5. CI 集成
- PR → terraform plan(自动评论)
- merge → terraform apply(审批后)
- 定时 → drift 检测
6. Drift 检测
- 定期 terraform plan 对比
- 告警非 IaC 变更
- 修复或导入
7. 文档与标签
- 资源标签(team / env / cost-center)
- 模块 README
- 变更日志
infrastructure/
├── modules/ ← 可复用模块
│ ├── networking/
│ │ ├── main.tf
│ │ ├── variables.tf
│ │ ├── outputs.tf
│ │ └── README.md
│ ├── eks-cluster/
│ └── rds/
├── environments/ ← 环境配置
│ ├── dev/
│ │ ├── main.tf ← 调用模块
│ │ ├── terraform.tfvars
│ │ └── backend.tf
│ ├── staging/
│ └── production/
├── .terraform-version
└── Makefile
| 特性 | Terraform | Pulumi | CloudFormation |
|---|---|---|---|
| 语言 | HCL | TypeScript/Python/Go | YAML/JSON |
| 状态管理 | 远程 backend | Pulumi Cloud | AWS 托管 |
| 多云 | ✅ | ✅ | ❌(AWS only) |
| Drift 检测 | plan | preview | drift detection |
| 模块生态 | Registry 丰富 | 较少 | 嵌套栈 |
| 学习曲线 | 中 | 低(熟悉语言) | 中 |
□ 远程 backend 已配置(S3 + DynamoDB 锁)
□ 状态文件不在 git 中
□ 模块有 variables / outputs / README
□ 敏感值不硬编码(用 SSM / Vault)
□ 资源有标签(Name / Environment / Team / CostCenter)
□ PR 自动运行 plan
□ plan 输出作为 PR 评论
□ apply 需审批
□ Drift 检测定期运行
□ 模块有版本锁定
□ 最小权限 IAM 角色
□ 有 destroy 保护(prevent_destroy)
□ 输出值供下游消费
templates/terraform-module-template.md — Terraform 模块标准结构模板上游:
架构设计 → 基础设施需求
secrets-config → 敏感配置来源
下游:
kubernetes-orchestration → 集群基础设施
networking-gateway → 网络 / LB / DNS
ci-cd-pipeline → 基础设施部署阶段
monitoring-alerting → 监控基础设施