SKILL.md
readonlyread-only
name
azure-resource-visualizer
description
分析 Azure 資源群組,並產生詳細的 Mermaid 架構圖,顯示個別資源之間的關係。當使用者要求繪製 Azure 資源圖表或協助了解資源之間的關聯時,使用此技能。
Azure Resource Visualizer - 架構圖產生器
使用者可能會要求協助了解個別資源如何組合在一起,或建立圖表顯示它們之間的關係。您的任務是檢查 Azure 資源群組,了解其結構與關係,並產生全面的 Mermaid 圖表,清楚說明架構。
核心職責
- 資源群組探索:當未指定時,列出可用的資源群組
- 深度資源分析:檢查所有資源、其設定與相互依賴關係
- 關係對應:識別並記錄資源之間的所有連線
- 圖表產生:建立詳細且準確的 Mermaid 圖表
- 文件建立:產生內嵌圖表的清晰 Markdown 檔案
工作流程
步驟 1:選擇資源群組
如果使用者未指定資源群組:
- 使用您的工具查詢可用的資源群組。如果您沒有此工具,請使用
az。 - 顯示資源群組的編號清單及其位置
- 要求使用者依編號或名稱選擇一個
- 等待使用者回應後再繼續
如果已指定資源群組,請驗證其存在並繼續。
步驟 2:資源探索與分析
取得資源群組後:
-
查詢資源群組中的所有資源,使用 Azure MCP 工具或
az。 -
分析每個資源類型並擷取:
- 資源名稱與類型
- SKU/層級資訊
- 位置/區域
- 主要設定屬性
- 網路設定(VNet、子網路、私人端點)
- 身分識別與存取(受控識別、RBAC)
- 相依性與連線
-
對應關係,透過識別:
- 網路連線: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 檔案,包含:
- 標頭:資源群組名稱、訂用帳戶、區域
- 摘要:架構的簡要概述(2-3 段)
- 資源清單:列出所有資源及其類型和主要屬性的表格
- 架構圖:完整的 Mermaid 圖表
- 關係詳細說明:關鍵連線和資料流的說明
- 備註:任何重要的觀察、潛在問題或建議
操作指南
品質標準
- 準確性:在納入圖表前驗證所有資源詳細資訊
- 完整性:不要遺漏資源;包含資源群組中的所有項目
- 清晰度:使用清晰、描述性的標籤和邏輯分組
- 詳細程度:包含對架構理解重要的設定詳細資訊
- 關係:顯示所有重要的連線,不僅是顯而易見的
工具使用模式
-
Azure MCP 搜尋:
- 使用
intent="list resource groups"探索資源群組 - 使用
intent="list resources in group"搭配群組名稱取得所有資源 - 使用
intent="get resource details"進行個別資源分析 - 當需要特定 Azure 操作時使用
command參數
- 使用
-
檔案建立:
- 一律建立在工作區根目錄或
docs/資料夾(如果存在) - 使用清晰、描述性的檔案名稱:
[rg-name]-architecture.md - 確保 Mermaid 語法有效(在輸出前於腦中測試語法)
- 一律建立在工作區根目錄或
-
終端機(必要時):
- 對於 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) rg-prod-app, 2) rg-dev-app, 3) rg-shared」
- 使用者選擇:「1」
- 查詢 rg-prod-app 中的所有資源
- 分析:App Service、Function App、SQL Database、Storage Account、Key Vault、VNet、NSG
- 識別關係:App → Function、Function → SQL、Function → Storage、全部 → Key Vault
- 建立包含子圖的詳細 Mermaid 圖表
- 產生
rg-prod-app-architecture.md並附上完整文件 - 顯示:「已在 rg-prod-app-architecture.md 中建立架構圖。找到 7 個資源,8 個主要關係。」
成功標準
成功的分析包含:
- ✅ 識別出有效的資源群組
- ✅ 探索並分析所有資源
- ✅ 對應所有重要關係
- ✅ 包含適當分組的詳細 Mermaid 圖表
- ✅ 建立完整的 Markdown 檔案
- ✅ 清晰、可操作的文件
- ✅ 有效的 Mermaid 語法,可正確呈現
- ✅ 專業、架構師等級的輸出
您的目標是提供 Azure 架構的清晰度與洞察,透過出色的視覺化讓複雜的資源關係易於理解。






