terraform-azurerm-set-diff-analyzer について
Terraform AzureRM の plan 差分を分析するスキルです。Set 型属性による誤検知を特定し、実際のリソース変更と区別するため、plan の確認や CI/CD での差分処理に使えます。
主な機能
- 01Terraform plan JSON の読み取り
- 02Set 属性による誤検知の特定
- 03実際のリソース変更との区別
- 04CI/CD での差分フィルタリング
活用シーン
- 01Application Gateway の plan 確認
- 02Load Balancer や NSG の差分調査
- 03CI/CD での誤検知フィルタリング
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ github/ awesome-copilot --skill terraform-azurerm-set-diff-analyzerインストール後、Claude Code で/terraform-azurerm-set-diff-analyzerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/azurerm_set_attributes.jsonazurerm_set_attributes.mdscripts/.gitignoreanalyze_plan.pyREADME.md詳細
Terraform AzureRM Set Diff アナライザー
Terraform プランにおいて AzureRM Provider の Set 型属性に起因する「偽陽性の差分」を特定し、実際の変更と区別するためのスキルです。
使用する場面
terraform planで多くの変更が表示されるが、実際には要素を 1 つ追加または削除しただけである- Application Gateway、Load Balancer、NSG などで「すべての要素が変更された」と表示される
- CI/CD において偽陽性の差分を自動的にフィルタリングしたい
背景
Terraform の Set 型はキーではなく位置で比較するため、要素を追加または削除すると、すべての要素が「変更された」として表示されます。これは Terraform の一般的な問題ですが、Application Gateway、Load Balancer、NSG など Set 型属性を多用する AzureRM リソースでは特に顕著になります。
これらの「偽陽性の差分」は実際にはリソースに影響を与えませんが、terraform plan の出力をレビューする際の妨げになります。
前提条件
- Python 3.8+
Python が利用できない場合は、お使いのパッケージマネージャー(例: apt install python3、brew install python3)または python.org からインストールしてください。
基本的な使い方
# 1. Generate plan JSON output
terraform plan -out=plan.tfplan
terraform show -json plan.tfplan > plan.json
# 2. Analyze
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 - サポートされているリソースと属性
コメント
Markdown 対応