mcpField
A
azure-resource-visualizer

azure-resource-visualizer

github.com/githubクラウド・DevOps40.5k8.9k 回インストール1 日前に更新
リポジトリ

azure-resource-visualizer について

Azure のリソースグループを分析し、Mermaid 図と Markdown でアーキテクチャを記録するスキルです。リソースの発見、関係の整理、読み取り専用の分析を通じて、Azure 環境の把握を支援します。

主な機能

  1. 01リソースグループとリソースの発見
  2. 02構成と依存関係の調査
  3. 03ネットワーク・データ・ID 関係の整理
  4. 04階層化した Mermaid 図の生成
  5. 05Markdown の一覧と説明の作成

活用シーン

  1. 01Azure リソースグループ内の構成把握
  2. 02Azure サービス間の接続の文書化
  3. 03ネットワークと ID の依存関係の確認
  4. 04リソースを変更せずにアーキテクチャ文書を作成

MCP 対応

Azure MCP ツールを使って、リソースグループやリソースの検出、詳細の取得ができます。クエリには Azure CLI も利用でき、分析は読み取り専用で、アーキテクチャ文書を作成します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/github/awesome-copilot --skill azure-resource-visualizer

インストール後、Claude Code で/azure-resource-visualizerを入力して読み込まれたか確認します。

同梱ファイルassets/template-architecture.mdLICENSE.txt

詳細

Azure Resource Visualizer - アーキテクチャ図ジェネレーター

ユーザーは、個々のリソースがどのように組み合わさっているかを理解するための支援や、それらの関係を示す図の作成を求めることがあります。あなたの使命は、Azure リソースグループを調査し、その構造と関係を理解し、アーキテクチャを明確に図示する包括的な Mermaid 図を生成することです。

主な責務

  1. リソースグループの検出: 指定がない場合は、利用可能なリソースグループを一覧表示する
  2. リソースの詳細分析: すべてのリソース、その構成、および相互依存関係を調査する
  3. 関係のマッピング: リソース間のすべての接続を特定して文書化する
  4. 図の生成: 詳細で正確な Mermaid 図を作成する
  5. ドキュメントの作成: 図を埋め込んだ明確な Markdown ファイルを作成する

ワークフロープロセス

ステップ 1: リソースグループの選択

ユーザーがリソースグループを指定していない場合:

  1. ツールを使用して利用可能なリソースグループを照会します。このためのツールがない場合は、az を使用します。
  2. リソースグループをその場所とともに番号付きリストで提示します
  3. ユーザーに番号または名前で 1 つ選択するよう求めます
  4. 続行する前にユーザーの応答を待ちます

リソースグループが指定されている場合は、それが存在することを検証して続行します。

ステップ 2: リソースの検出と分析

リソースグループを取得したら:

  1. Azure MCP ツールまたは az を使用して、リソースグループ内のすべてのリソースを照会します。

  2. 各リソースを分析し、以下を把握します:

    • リソース名と種類
    • SKU/階層情報
    • 場所/リージョン
    • 主要な構成プロパティ
    • ネットワーク設定 (VNet、サブネット、プライベートエンドポイント)
    • ID とアクセス (マネージド ID、RBAC)
    • 依存関係と接続
  3. 以下を特定して関係をマッピングします:

    • ネットワーク接続: VNet ピアリング、サブネットの割り当て、NSG ルール、プライベートエンドポイント
    • データフロー: アプリ → データベース、Functions → ストレージ、API Management → バックエンド
    • ID: リソースに接続するマネージド ID
    • 構成: Key Vault を指すアプリ設定、接続文字列
    • 依存関係: 親子関係、必要なリソース
ステップ 3: 図の構築

graph TB (上から下) または graph LR (左から右) 形式を使用して、詳細な Mermaid 図を作成します:

図の構造ガイドライン:

graph TB
    %% Use subgraphs to group related resources
    subgraph "Resource Group: [name]"
        subgraph "Network Layer"
            VNET[Virtual Network<br/>10.0.0.0/16]
            SUBNET1[Subnet: web<br/>10.0.1.0/24]
            SUBNET2[Subnet: data<br/>10.0.2.0/24]
            NSG[Network Security Group]
        end
        
        subgraph "Compute Layer"
            APP[App Service<br/>Plan: P1v2]
            FUNC[Function App<br/>Runtime: .NET 8]
        end
        
        subgraph "Data Layer"
            SQL[Azure SQL Database<br/>DTU: S1]
            STORAGE[Storage Account<br/>Type: Standard LRS]
        end
        
        subgraph "Security & Identity"
            KV[Key Vault]
            MI[Managed Identity]
        end
    end
    
    %% Define relationships with descriptive labels
    APP -->|"HTTPS requests"| FUNC
    FUNC -->|"SQL connection"| SQL
    FUNC -->|"Blob/Queue access"| STORAGE
    APP -->|"Uses identity"| MI
    MI -->|"Access secrets"| KV
    VNET --> SUBNET1
    VNET --> SUBNET2
    SUBNET1 --> APP
    SUBNET2 --> SQL
    NSG -->|"Rules applied to"| SUBNET1

図の主な要件:

  • レイヤーまたは目的ごとにグループ化: ネットワーク、コンピューティング、データ、セキュリティ、監視
  • 詳細を含める: ノードのラベルに SKU、階層、重要な設定を含めます (改行には <br/> を使用)
  • すべての接続にラベルを付ける: リソース間で何が流れるか (データ、ID、ネットワーク) を記述します
  • 意味のあるノード ID を使用: 理にかなった略語 (APP、FUNC、SQL、KV)
  • 視覚的な階層: 論理的なグループ化のためのサブグラフ
  • 接続の種類:
    • --> はデータフローまたは依存関係
    • -.-> はオプション/条件付きの接続
    • ==> は重要/主要なパス

リソースの種類の例:

  • App Service: プラン階層を含める (B1、S1、P1v2)
  • Functions: ランタイムを含める (.NET、Python、Node)
  • データベース: 階層を含める (Basic、Standard、Premium)
  • ストレージ: 冗長性を含める (LRS、GRS、ZRS)
  • VNet: アドレス空間を含める
  • サブネット: アドレス範囲を含める
ステップ 4: ファイルの作成

template-architecture.md をテンプレートとして使用し、[resource-group-name]-architecture.md という名前の Markdown ファイルを作成します。内容は以下のとおりです:

  1. ヘッダー: リソースグループ名、サブスクリプション、リージョン
  2. 概要: アーキテクチャの簡単な概要 (2~3 段落)
  3. リソースインベントリ: すべてのリソースを種類と主要なプロパティとともに一覧表示する表
  4. アーキテクチャ図: 完全な Mermaid 図
  5. 関係の詳細: 主要な接続とデータフローの説明
  6. 注記: 重要な所見、潜在的な問題、または推奨事項

運用ガイドライン

品質基準
  • 正確性: 図に含める前に、すべてのリソースの詳細を確認する
  • 網羅性: リソースを省略せず、リソースグループ内のすべてを含める
  • 明確性: 明確で説明的なラベルと論理的なグループ分けを使用する
  • 詳細レベル: アーキテクチャの理解に重要な構成の詳細を含める
  • 関係性: 明らかなものだけでなく、すべての重要な接続を示す
ツールの使用パターン
  1. Azure MCP Search:

    • intent="list resource groups" を使用してリソースグループを検出します
    • intent="list resources in group" をグループ名とともに使用して、すべてのリソースを取得します
    • intent="get resource details" を個々のリソースの分析に使用します
    • 特定の Azure 操作が必要な場合は command パラメーターを使用します
  2. ファイルの作成:

    • 常にワークスペースのルート、または存在する場合は docs/ フォルダーに作成します
    • 明確で説明的なファイル名を使用します: [rg-name]-architecture.md
    • Mermaid 構文が有効であることを確認します(出力前に構文を頭の中でテストします)
  3. ターミナル(必要な場合):

    • MCP では利用できない複雑なクエリには Azure CLI を使用します
    • 例: az resource list --resource-group <name> --output json
    • 例: az network vnet show --resource-group <name> --name <vnet-name>
制約と境界

常に行うこと:

  • ✅ 指定されていない場合はリソースグループを一覧表示する
  • ✅ 続行する前にユーザーの選択を待つ
  • ✅ グループ内のすべてのリソースを分析する
  • ✅ 詳細で正確な図を作成する
  • ✅ ノードのラベルに構成の詳細を含める
  • ✅ サブグラフを使用してリソースを論理的にグループ化する
  • ✅ すべての接続に説明的なラベルを付ける
  • ✅ 図を含む完全な markdown ファイルを作成する

決して行わないこと:

  • ❌ 重要でないと思われるリソースをスキップする
  • ❌ 検証せずにリソースの関係について推測する
  • ❌ 不完全な図やプレースホルダーの図を作成する
  • ❌ アーキテクチャに影響する構成の詳細を省略する
  • ❌ リソースグループの選択を確認せずに続行する
  • ❌ 無効な Mermaid 構文を生成する
  • ❌ Azure リソースを変更または削除する(読み取り専用の分析)
エッジケースとエラー処理
  • リソースが見つからない場合: ユーザーに通知し、リソースグループ名を確認します
  • 権限の問題: 何が不足しているかを説明し、RBAC の確認を提案します
  • 複雑なアーキテクチャ(50 以上のリソース): レイヤーごとに複数の図を作成することを検討します
  • リソースグループ間の依存関係: 図の注記に外部依存関係を記載します
  • 明確な関係がないリソース: 「その他のリソース」セクションでグループ化します

出力形式の仕様

Mermaid 図の構文
  • 垂直レイアウトには graph TB(上から下)を使用します
  • 水平レイアウトには graph LR(左から右)を使用します(横長のアーキテクチャに適しています)
  • サブグラフの構文: subgraph "Descriptive Name"
  • ノードの構文: ID["Display Name<br/>Details"]
  • 接続の構文: SOURCE -->|"Label"| TARGET
Markdown の構造
  • メインタイトルには H1 を使用します
  • 主要なセクションには H2 を使用します
  • サブセクションには H3 を使用します
  • リソースの一覧には表を使用します
  • 注記や推奨事項には箇条書きを使用します
  • 図には mermaid 言語タグ付きのコードブロックを使用します

対話の例

ユーザー: 「本番環境のリソースグループを分析して」

エージェント:

  1. サブスクリプション内のすべてのリソースグループを一覧表示する
  2. ユーザーに選択を求める: 「どのリソースグループですか? 1) rg-prod-app、2) rg-dev-app、3) rg-shared」
  3. ユーザーが選択: 「1」
  4. rg-prod-app 内のすべてのリソースをクエリする
  5. 分析: App Service、Function App、SQL Database、Storage Account、Key Vault、VNet、NSG
  6. 関係を特定: App → Function、Function → SQL、Function → Storage、All → Key Vault
  7. サブグラフを含む詳細な Mermaid 図を作成する
  8. 完全なドキュメントを含む rg-prod-app-architecture.md を生成する
  9. 表示: 「rg-prod-app-architecture.md にアーキテクチャ図を作成しました。7 つのリソースと 8 つの主要な関係が見つかりました。」

成功基準

成功した分析には以下が含まれます:

  • ✅ 有効なリソースグループが特定されている
  • ✅ すべてのリソースが検出され、分析されている
  • ✅ すべての重要な関係がマッピングされている
  • ✅ 適切なグループ化を伴う詳細な Mermaid 図
  • ✅ 完全な Markdown ファイルが作成されている
  • ✅ 明確で実行可能なドキュメント
  • ✅ 正しくレンダリングされる有効な Mermaid 構文
  • ✅ プロフェッショナルでアーキテクトレベルの成果物

あなたの目標は、Azure アーキテクチャに対する明確さと洞察を提供し、優れた可視化を通じて複雑なリソースの関係を容易に理解できるようにすることです。

コメント