
管道魔法:tf-summarize 与 terraform show、fx 组合的 5 种高级用法【免费下载链接】tf-summarizeA command-line utility to print the summary of the terraform plan项目地址: https://gitcode.com/gh_mirrors/tf/tf-summarize在 Terraform 工作流中terraform plan的输出往往冗长到让人头疼而tf-summarize正是为解决这一痛点而生的命令行工具它能把 terraform plan 文件解析成一张简洁清晰的变更摘要表。今天这篇文章我将手把手带你掌握tf-summarize与terraform show、fx组合使用的 5 种高级用法用一条条管道命令把复杂的资源变更变成一目了然的图表大幅提升你的 Terraform 审查效率。为什么你需要 tf-summarize日常开发中改动几个.tf文件后执行terraform plan输出常常是几百行的 JSON 或文本。你想快速知道哪些资源会被删除、哪些被修改却不得不在海量输出里人工翻找。tf-summarize做的事情很简单把 terraform plan 按 add / delete / update / recreate 分类汇总只留下你关心的资源名和变更动作支持表格、树形、JSON、HTML 等多种输出格式。上图展示了tf-summarize的实际输出效果上方是表格形式的变更摘要中间是树形结构的资源依赖视图下方是带连接线的图形化树新增、删除-、修改~一目了然。最快安装方法一行命令搞定在开始组合玩法之前先快速装好工具。推荐用 Go 直接安装go install github.com/dineshba/tf-summarizelatest也可以使用brew install tf-summarizemacOS、asdf插件或直接下载 release 压缩包解压到$PATH。装好后运行tf-summarize -v验证版本号即可。用法一terraform show 管道输出表格摘要 最基础的管道魔法用一条命令搞定 plan 汇总terraform plan -outtfplan terraform show -json tfplan | tf-summarizeterraform show -json tfplan把二进制 plan 文件转成 JSON再通过管道喂给tf-summarize默认输出表格格式按变更类型分组展示所有受影响资源。这是日常审查的黄金组合几秒钟就能掌握全部变更范围。----------------------------------------------------------------------- | CHANGE | NAME | ----------------------------------------------------------------------- | add | github_repository.terraform_plan_summary | | delete | module.github[demo-repository].github_branch.trail | | update | module.github[terraform-plan-summary].github_repository | -----------------------------------------------------------------------用法二-tree 参数查看资源依赖树 当项目引入 module 后资源之间存在层级关系表格就难以表达谁属于谁。这时加上-tree参数terraform show -json tfplan | tf-summarize -tree输出变成树形结构module 嵌套、资源归属关系清晰可见。想更直观再加-draw参数渲染成带连接线的二维树也就是上面截图最下方的效果。配合-separate-tree还能把 add / delete / change / recreate 拆成四棵独立的树审查大变更时定位更快。用法三管道连接 fx 交互式审查 JSON fx是一个交互式 JSON 查看器与tf-summarize是天作之合terraform show -json tfplan | tf-summarize -json | fx-json参数输出结构化的 JSON按资源类型组织树形数据update 资源还附带字段级 diff再用fx打开就能用方向键在终端里上下展开、搜索、过滤每个资源的变更细节。这种管道魔法特别适合 reviewer 在 PR 审查时逐项核对配置差异。用法四-json-sum 快速统计变更数量 不想看细节只想知道这次动了多少资源-json-sum参数只输出变更数量统计terraform show -json tfplan | tf-summarize -json-sum # 输出示例{changes:{add:5,delete:1,update:2}}把它接在fx后面或者配合jq做进一步处理就能在 CI 里自动生成本次变更规模摘要甚至可以对比历史数字及时发现异常膨胀的变更。用法五输出到文件并在 CI 中复用 最后一种用法适合工程化场景tf-summarize支持-out参数把结果写入文件配合-md、-html还能直接生成 Markdown 表格或可视化 HTML 页面terraform show -json tfplan | tf-summarize -md -outsummary.md terraform show -json tfplan | tf-summarize -html -outsummary.html生成的文件可以直接作为 PR 评论、部署文档或团队周报的素材。在 GitHub Actions / Codefresh 等 CI 中你只需要在 plan 阶段把 JSON 输出保存下来再在 show 阶段执行tf-summarize output.json就能自动在每次流水线里附上一份变更摘要。总结让管道魔法成为你的日常习惯 从terraform show -json tfplan | tf-summarize的表格速览到-tree的依赖树、-json | fx的交互审查再到-json-sum的量化统计和-out的 CI 集成这 5 种组合几乎覆盖了 Terraform 变更审查的全部场景。工具本身是 Go 编写、支持直接解析tfplan文件或从标准输入读取 JSON核心逻辑集中在 writer/ 目录和 main.go 中感兴趣的读者还可以阅读源码了解它是如何解析并分类资源变更的。把这几条管道命令存进你的 shell 别名从此告别在冗长 plan 输出里大海捞针把时间留给真正重要的架构决策吧。【免费下载链接】tf-summarizeA command-line utility to print the summary of the terraform plan项目地址: https://gitcode.com/gh_mirrors/tf/tf-summarize创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考