一、基本信息
| 项目 | 内容 | 数据来源 |
|---|---|---|
| 正式名称 | terraform-search-import-hashicorp-agent-skills | 合集仓库子目录名(见下方说明) |
| 所属合集仓库 | hashicorp/agent-skills(HashiCorp 官方 Agent Skills 合集,含 Terraform、Packer 两条产品线,当前共 17 个技能) | GitHub |
| 作者/维护者 | HashiCorp(现为 IBM 旗下),官方账号 hashicorp 发布 |
GitHub |
| 来源链接 | https://github.com/hashicorp/agent-skills/tree/main/terraform/code-generation/skills/terraform-search-import | — |
| 许可证 | MPL-2.0(Mozilla Public License 2.0) | GitHub API |
| 所属仓库整体 Stars/Forks | 754 / 110(注:该数字属整个合集仓库,不代表本技能自身热度,仅作背景参考) | GitHub API |
| 最新版本 | 仓库 CHANGELOG 将本技能列入尚未随版本号发布的 Unreleased 新增项;本技能目录最近一次提交为 2026-07-09 | GitHub API |
| 安装方式 | npx skills add hashicorp/agent-skills/terraform/code-generation/skills/terraform-search-import;或经 Claude Code 插件市场安装 terraform-code-generation@hashicorp |
官方 README |
二、功能介绍与亮点
本技能教 Agent 用 Terraform 原生的 Search 功能(.tfquery.hcl 文件配合 list 区块)发现云账号中尚未纳入 Terraform 管理的既有资源,并批量生成对应的 import 配置块,替代此前逐个资源手写 import 语句、或另写脚本调用云厂商 CLI 逆向拼凑资源定义的做法。内容覆盖完整工作流:先用随包脚本核实目标 Provider 是否已支持该资源类型的 Search 查询,再编写查询文件、运行 terraform query 生成配置、清理生成代码中的只读属性、最后执行 plan/apply;对暂不支持 Search 的资源类型或较旧 Terraform 版本,还提供了一份独立的人工发现兜底文档。
核心亮点:① 官方一线 IaC 厂商出品,且据仓库 CHANGELOG 记录,本技能是当前最新一批加入的能力,尚未随正式版本号发布,属仓库最前沿的新增内容;② 针对几乎所有基础设施团队都会遇到的真实痛点——把手工创建或遗留的云资源纳入 IaC 管理——把原本零散的手写流程标准化为四步工作流;③ 随包附带可直接执行的资源发现脚本,直接读取 Provider Schema 输出当前支持的资源类型,无需用户自行翻阅 Provider 文档;④ 内置排错对照表,覆盖查询为空、生成配置报错、导入失败等真实使用中的常见边界情况。
三、适用场景
固定分类:DevOps 与基础设施
需要把手工创建、遗留系统留下、或由其他团队直接在云控制台创建的资源纳入 Terraform 管理的 DevOps/平台工程师;正在推进“手工运维迁移到 IaC”项目的团队;需要盘点当前云账号中有哪些资源仍游离在 Terraform state 之外的合规或成本审计场景。
四、跨 Agent 兼容性
| Agent | 结论 | 依据 |
|---|---|---|
| Claude Code | 原生支持 | 官方 README 明确列出 Claude Code 为支持目标,并提供插件市场安装命令 |
| Codex | 未验证 | README 仅列出 GitHub Copilot / Opencode / Cursor 等,未点名 Codex |
| OpenClaw | 未验证 | 同上,未提及 |
| Hermes Agent | 未验证 | 同上,未提及 |
五、推荐理由
HashiCorp(现 IBM 旗下)官方出品,且是当前仓库最新加入、尚未正式发版的能力,把“遗留资源纳入 IaC 管理”这一几乎所有云基础设施团队都会遇到的手工痛点标准化为一套可执行工作流,并随包提供了可直接运行的资源探测脚本,而非停留在纯文字说明层面。
六、评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 8 | HashiCorp/IBM 官方出品;所属仓库整体 754 星、110 fork(背景参考,不计入本技能自身);仓库由 10 余位不同贡献者持续共同维护,issue/PR 活动密集 |
| 可用性 | 9 | 一条命令或经插件市场即可安装;文档含完整工作流示例、可执行发现脚本与排错对照表;目录近期(2026-07-09)仍有实质更新;无付费依赖 |
| 安全性 | 9 | 见下方安全检查清单 |
| 综合评分 | 8.7 | 三项均值 |
安全检查清单:
| 检查项 | 结果 |
|---|---|
| ① Shell 命令与权限范围 | 随包脚本仅执行 terraform init/terraform providers schema 与 jq 解析,用于只读本地 Provider Schema,范围明确,无破坏性操作 |
| ② 运行时联网外发 | 联网行为限于 Terraform CLI 本身访问用户自行配置的云 Provider 与 Terraform Registry,属工具常规行为,目标透明 |
| ③ API Key/凭据 | 依赖用户本地或环境变量中已有的云 Provider 凭据,技能本身不索取、不额外存储凭据 |
| ④ 可疑指令排查 | 已直接抓取 SKILL.md 与脚本源码核实,未发现 prompt injection 或隐藏指令 |
| ⑤ 作者/组织信誉 | HashiCorp(现 IBM 旗下),Terraform 官方开发商 |
| ⑥ License | MPL-2.0,条款清晰 |
| ⑦ 最近维护 | 目录最近一次提交 2026-07-09,且据 CHANGELOG 记录仍处于活跃迭代中 |
脚本逻辑单一、仅做只读查询,外联对象为用户自有云账号与官方 Registry,符合 7-8 档标准;因脚本本身可审计且无任何写入/破坏性操作,定为 9 分。
七、跟同类 Skills 相比的优势
| 对比对象 | 定位 | 与本 skill 的差异 |
|---|---|---|
| terraform-stacks(同仓库内技能) | 面向多环境/多区域整体编排的 Stack 语言技能 | 解决的是“如何编排已声明的基础设施”,与本技能“如何把尚未声明的既有资源纳入管理”是基础设施生命周期的不同阶段,不重叠 |
| Terraformer(GoogleCloudPlatform/terraformer) | 反射云 Provider API、批量生成资源定义与 import 命令的独立 CLI 工具,14,559 星 | 覆盖类似的“发现并导入”问题,且不依赖 Terraform 1.14+ 的原生 Search 语法,可用于更旧版本;但该仓库已被标记为 archived(不再维护),也不是 Agent 技能形态,需要 Agent 自行学习调用其 CLI |
| Terraform 原生 import block(HashiCorp 官方语言特性,非独立 skill) | Terraform 1.5 起支持的声明式导入语法 | 只解决“如何导入一个已知资源”,仍需用户自己先找出要导入哪些资源;本技能建立在更新的 Search 功能之上,把“发现哪些资源需要导入”这一步也自动化了 |
八、用户评价
该技能目前在第三方独立评价平台尚无具名用户评价。GitHub 仓库 issue 区可查到 AdamTylerLynch、vpaul97 等十余位不同贡献者近期为该合集仓库提交的功能新增与修复请求,反映仓库保持着多人协作的日常维护节奏。
九、其他补充
该技能所在仓库当前包含 Terraform、Packer 两条产品线共 17 个技能;据仓库 CHANGELOG 记录,本技能与新的 terraform-policy-code 插件同属最新一批加入的能力,尚未随正式版本号发布。
十、安装使用方式
方式一:npx skills 通用安装
npx skills add hashicorp/agent-skills/terraform/code-generation/skills/terraform-search-import
方式二:Claude Code 插件市场
claude plugin marketplace add hashicorp/agent-skills
claude plugin install terraform-code-generation@hashicorp
安装后无需重启,Agent 在处理 .tfquery.hcl 相关任务或“把现有资源导入 Terraform”类请求时会自动加载本技能;需自行准备 Terraform >= 1.14 的可用环境及目标云 Provider 的有效凭据。
十一、注意事项
- 依赖 Terraform 原生 Search 语法,要求 Terraform CLI 版本 >= 1.14,且仅对 Provider 已实现 “list resource” schema 的资源类型有效——覆盖范围随 Provider 版本迭代持续扩大,使用前应先用技能内置脚本核实目标资源类型是否已获支持
- 对尚不支持 Search 的资源类型或较旧 Terraform 版本,需改用技能内附的人工发现兜底文档,效率低于原生 Search 工作流
- 该技能收录于仓库 CHANGELOG 的未发版部分,后续内容可能随正式版本发布而调整
- 目前仅验证了与 Claude Code 的兼容性,其余 Agent 生态尚未获得直接证据