SuperAPI AI 工具集

terraform-ecosystem

部署与运维

查看项目

更新于 10-16 07:13

技能介绍

用途:在用户要求编写 Terraform、HCL、开发 Terraform Provider 或使用 terraform-plugin-framework 时提供指导。

主要能力:一是自定义 Provider 开发,Provider 代码为 Go,需实现 provider.Provider,声明资源与数据源;资源实现 resource.Resource 基础接口(Metadata、Schema、Create、Read、Update、Delete),并按需实现 ResourceWithConfigure、ResourceWithImportState 等扩展接口。Schema 通过 Required/Optional/Computed 与 Sensitive 控制属性行为,配合 planmodifier(如 UseStateForUnknown、RequiresReplace)和 validator 约束取值。CRUD 中 Read 需处理 404:调用 resp.State.RemoveResource 并直接返回,不添加错误;Delete 遇 404 视为成功。Configure 需对 ProviderData 做 nil 检查与类型断言。ImportState 可用 ImportStatePassthroughID。HTTP 客户端建议对 5xx 与 429 做指数退避重试,不重试其他 4xx。验收测试由 TF_ACC 环境变量控制,运行命令为 TF_ACC=1 go test -v ./...,会创建和销毁真实资源,可能产生费用与副作用。

HCL 与运维:用 lifecycle ignore_changes 抑制外部改动导致的持续 diff,但应只忽略最窄路径。若同一运行中部分资源成功、部分在创建时返回 404/403,应优先怀疑执行凭据的作用域而非配置。自定义域名常需托管资源与 DNS CNAME 两条资源协同,平台终止 TLS 时 DNS 记录通常保持未代理。状态应按关注点隔离到独立工作区,使用远程后端,密钥不入状态与配置。CI 校验链为 terraform fmt -check、terraform validate、tflint、terraform plan、terraform apply。

限制:资料未提供具体价格、平台支持范围或完整安装步骤;框架符号名建议先用 Context7 核对,因辅助包名与 1.0 之前设计文档不同。