azure-resource-visualizer

azure-resource-visualizer

熱門

分析 Azure 資源群組,並產生詳細的 Mermaid 架構圖,顯示個別資源之間的關係。使用時機:建立架構圖、視覺化 Azure 資源、顯示資源關係、產生 Mermaid 圖表、分析資源群組、繪製我的資源、架構視覺化、資源拓撲、對應 Azure 基礎結構。

1196星標
196分支
更新於 2026/6/9
SKILL.md
readonlyread-only
name
azure-resource-visualizer
description

分析 Azure 資源群組,並產生詳細的 Mermaid 架構圖,顯示個別資源之間的關係。使用時機:建立架構圖、視覺化 Azure 資源、顯示資源關係、產生 Mermaid 圖表、分析資源群組、繪製我的資源、架構視覺化、資源拓撲、對應 Azure 基礎結構。

Azure Resource Visualizer - 架構圖產生器

使用者可能會要求協助了解個別資源如何組合在一起,或建立圖表顯示它們之間的關係。你的任務是檢查 Azure 資源群組,了解其結構與關係,並產生全面的 Mermaid 圖表,清楚說明架構。

核心職責

  1. 資源群組探索:當未指定時,列出可用的資源群組
  2. 深度資源分析:檢查所有資源、其設定與相互依賴關係
  3. 關係對應:識別並記錄資源之間的所有連線
  4. 圖表產生:建立詳細且準確的 Mermaid 圖表
  5. 文件建立:產生包含內嵌圖表的清晰 Markdown 檔案

工作流程

步驟 1:資源群組選擇

如果使用者未指定資源群組:

  1. 使用你的工具查詢可用的資源群組。如果你沒有這類工具,請使用 az
  2. 顯示資源群組的編號清單,包含其位置
  3. 要求使用者依編號或名稱選擇一個
  4. 等待使用者回應後再繼續

如果已指定資源群組,請驗證其存在並繼續。

步驟 2:資源探索與分析

若要跨訂用帳戶進行大量資源探索,請使用 Azure Resource Graph 查詢。請參閱 Azure Resource Graph 查詢 以了解跨訂用帳戶的庫存與關係探索模式。

取得資源群組後:

  1. 查詢資源群組中的所有資源,使用 Azure MCP 工具或 az

  2. 分析每個資源類型並擷取:

    • 資源名稱與類型
    • SKU/層級資訊
    • 位置/區域
    • 主要設定屬性
    • 網路設定(VNet、子網路、私人端點)
    • 身分識別與存取(受控身分識別、RBAC)
    • 相依性與連線
  3. 對應關係,透過識別:

    • 網路連線:VNet 對等互連、子網路指派、NSG 規則、私人端點
    • 資料流:應用程式 → 資料庫、函數 → 儲存體、API 管理 → 後端
    • 身分識別:連線到資源的受控身分識別
    • 設定:指向金鑰保存庫的應用程式設定、連線字串
    • 相依性:父子關係、必要資源

重要:你只能使用預留位置名稱來代表機密值,例如金鑰、連線字串、金鑰保存庫祕密等。在圖表中使用有意義的預留位置名稱來代表每個機密。切勿將機密值放入資源圖表中。

步驟 3:圖表建構

使用 graph TB(由上到下)或 graph LR(由左到右)格式建立詳細的 Mermaid 圖表

請參閱 example-diagram.md 以取得完整的範例架構圖。

圖表主要需求:

  • 依層級或用途分組:網路、運算、資料、安全性、監控
  • 包含詳細資訊:在節點標籤中顯示 SKU、層級、重要設定(使用 <br/> 換行)
  • 標示所有連線:描述資源之間流動的內容(資料、身分識別、網路)
  • 使用有意義的節點 ID:易於理解的縮寫(APP、FUNC、SQL、KV)
  • 視覺層級:使用子圖進行邏輯分組
  • 連線類型
    • --> 表示資料流或相依性
    • -.-> 表示選擇性/條件式連線
    • ==> 表示關鍵/主要路徑

資源類型範例:

  • App Service:包含方案層級(B1、S1、P1v2)
  • Functions:包含執行階段(.NET、Python、Node)
  • 資料庫:包含層級(基本、標準、進階)
  • 儲存體:包含備援(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 搜尋

    • 使用 intent="list resource groups" 探索資源群組
    • 使用 intent="list resources in group" 搭配群組名稱取得所有資源
    • 使用 intent="get resource details" 進行個別資源分析
    • 當需要特定 Azure 操作時使用 command 參數
  2. 檔案建立

    • 一律在工作區根目錄或 docs/ 資料夾(如果存在)中建立
    • 使用清晰、描述性的檔案名稱:[rg-name]-architecture.md
    • 確保 Mermaid 語法有效(在輸出前於腦中測試語法)
  3. 終端機(必要時)

    • 使用 Azure CLI 進行 MCP 無法提供的複雜查詢
    • 範例: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 語言標籤的程式碼區塊來放置圖表

成功標準

成功的分析包含:

  • ✅ 已識別有效的資源群組
  • ✅ 已探索並分析所有資源
  • ✅ 已對應所有重要關係
  • ✅ 已建立包含適當分組的詳細 Mermaid 圖表
  • ✅ 已建立完整的 Markdown 檔案
  • ✅ 清晰、可執行的文件
  • ✅ 有效的 Mermaid 語法,可正確呈現
  • ✅ 專業、架構師等級的輸出

你的目標是為 Azure 架構提供清晰度與洞察,透過出色的視覺化讓複雜的資源關係易於理解。