azure-resource-visualizer

azure-resource-visualizer

熱門

分析 Azure 資源群組,並產生詳細的 Mermaid 架構圖,顯示個別資源之間的關係。當使用者要求繪製 Azure 資源圖表或協助了解資源之間的關聯時,使用此技能。

3.7萬星標
4569分支
更新於 2026/7/14
SKILL.md
readonlyread-only
name
azure-resource-visualizer
description

分析 Azure 資源群組,並產生詳細的 Mermaid 架構圖,顯示個別資源之間的關係。當使用者要求繪製 Azure 資源圖表或協助了解資源之間的關聯時,使用此技能。

Azure Resource Visualizer - 架構圖產生器

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

核心職責

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

工作流程

步驟 1:選擇資源群組

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

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

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

步驟 2:資源探索與分析

取得資源群組後:

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

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

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

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

步驟 3:圖表建構

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

圖表結構指南:

graph TB
    %% 使用子圖將相關資源分組
    subgraph "資源群組:[名稱]"
        subgraph "網路層"
            VNET[虛擬網路<br/>10.0.0.0/16]
            SUBNET1[子網路:web<br/>10.0.1.0/24]
            SUBNET2[子網路:data<br/>10.0.2.0/24]
            NSG[網路安全性群組]
        end
        
        subgraph "運算層"
            APP[應用程式服務<br/>方案:P1v2]
            FUNC[函式應用程式<br/>執行階段:.NET 8]
        end
        
        subgraph "資料層"
            SQL[Azure SQL 資料庫<br/>DTU:S1]
            STORAGE[儲存體帳戶<br/>類型:標準 LRS]
        end
        
        subgraph "安全性與身分識別"
            KV[金鑰保存庫]
            MI[受控識別]
        end
    end
    
    %% 使用描述性標籤定義關係
    APP -->|"HTTPS 要求"| FUNC
    FUNC -->|"SQL 連線"| SQL
    FUNC -->|"Blob/佇列存取"| STORAGE
    APP -->|"使用身分識別"| MI
    MI -->|"存取祕密"| KV
    VNET --> SUBNET1
    VNET --> SUBNET2
    SUBNET1 --> APP
    SUBNET2 --> SQL
    NSG -->|"規則套用至"| SUBNET1

圖表主要要求:

  • 依層級或用途分組:網路、運算、資料、安全性、監控
  • 包含詳細資訊: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. 終端機(必要時)

    • 對於 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、全部 → Key Vault
  7. 建立包含子圖的詳細 Mermaid 圖表
  8. 產生 rg-prod-app-architecture.md 並附上完整文件
  9. 顯示:「已在 rg-prod-app-architecture.md 中建立架構圖。找到 7 個資源,8 個主要關係。」

成功標準

成功的分析包含:

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

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