SuperAPI AI 工具集

terraform-azurerm-set-diff-analyzer

部署与运维

查看项目

更新于 10-15 21:52

技能介绍

用途:分析 Terraform plan 的 JSON 输出,识别 AzureRM Provider 中 Set 类型属性导致的“假阳性差异”,并将其与真实变更区分开。

适用场景:terraform plan 显示大量变更但实际只增删了一个元素;Application Gateway、Load Balancer、NSG 等资源显示“所有元素都变了”;希望在 CI/CD 中自动过滤假阳性差异。

背景:Terraform 的 Set 类型按位置而非键比较,增删元素时所有元素都会显示为“已更改”。这是 Terraform 的通用问题,在大量使用 Set 类型属性的 AzureRM 资源(如 Application Gateway、Load Balancer、NSG)上尤为明显。这些假阳性差异不影响实际资源,但会让 plan 输出难以审查。

前提条件:Python 3.8+。若没有 Python,可通过包管理器安装(如 apt install python3、brew install python3)或从 python.org 安装。

基本用法: terraform plan -out=plan.tfplan terraform show -json plan.tfplan > plan.json python scripts/analyze_plan.py plan.json

故障排查:出现 python: command not found 时改用 python3 或安装 Python;出现 ModuleNotFoundError 时确认 Python 版本为 3.8+,脚本仅使用标准库。

详细文档:scripts/README.md 包含全部选项、输出格式、退出码和 CI/CD 示例;references/azurerm_set_attributes.md 列出支持的资源与属性。

限制:资料未提供具体支持的资源与属性完整清单、输出格式细节及退出码说明,需查阅上述文档。