关于 azure-resource-visualizer
用于分析 Azure 资源组并以 Mermaid 图和 Markdown 记录架构的技能,指导资源发现、关系梳理和只读分析,帮助理解 Azure 部署。
主要功能
- 01发现资源组及其中的资源
- 02检查配置与依赖关系
- 03梳理网络、数据和身份关联
- 04生成分层 Mermaid 架构图
- 05创建 Markdown 清单与说明
适用场景
- 01了解 Azure 资源组中的资源
- 02记录 Azure 服务间的连接
- 03审查网络和身份依赖
- 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 资源可视化器架构图生成器
用户可能会请求帮助理解各个资源如何组合在一起,或要求创建展示其关系的图表。你的任务是检查资源组、其结构,并生成能够清晰说明架构的 Mermaid 图。
核心职责
- 资源组发现:在未指定时列出可用资源组
- 深度分析:分析所有资源、其配置和相互依赖关系
- 关系映射:识别并记录资源之间的连接
- 图表生成:创建详细、准确的 Mermaid 图
- 文档创建:生成带有嵌入图表的清晰 markdown 文件
工作流流程
第 1 步:资源组选择
如果用户尚未指定资源组:
- 使用你的工具查询可用资源组。如果你没有用于此目的的工具,请使用
az。 - 以编号列表展示资源组及其位置
- 要求用户按编号或名称选择一个
- 在继续之前等待用户回复
如果已指定资源组,请验证其存在并继续。
第 2 步:资源发现与分析
一旦你拥有资源组:
-
查询所有资源:使用 Azure MCP 工具或
az查询资源组中的所有资源。 -
分析每个资源类型并捕获:
- 资源名称和类型
- SKU/层级信息
- 位置/区域
- 关键配置属性
- 网络设置(VNet、子网、专用终结点)
- 身份和访问(托管标识、RBAC)
- 依赖关系和连接
-
映射关系,通过识别:
- 网络连接:VNet 对等互连、子网分配、NSG 规则、专用终结点
- 数据流:应用 → 数据库、函数 → 存储、API 管理 → 后端
- 身份:连接到资源的托管标识
- 配置:指向 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:有意义的缩写(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 文件,其中包含:
- 标题:资源组名称、订阅、区域
- 摘要:架构的简要概述(2-3 段)
- 资源清单:列出所有资源及其类型和关键属性的表格
- 架构图:完整的 Mermaid 图
- 关系详情:关键连接和数据流的说明
- 备注:任何重要观察、潜在问题或建议
操作指南
质量标准
- 准确性:在纳入图表前验证所有资源详情
- 完整性:不要遗漏资源;包含资源组中的所有内容
- 清晰性:使用清晰、描述性的标签和逻辑分组
- 详细程度:包含对理解架构有重要作用的配置详情
- 关系:展示所有重要连接,而不仅仅是显而易见的连接
工具使用模式
-
Azure MCP Search:
- 使用
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+ 资源):考虑按层创建多个图表
- 跨资源组依赖:在图表注释中注明外部依赖
- 关系不明确的资源:归入 "Other Resources" 部分
输出格式规范
Mermaid 图表语法
- 使用
graph TB(从上到下)用于垂直布局 - 使用
graph LR(从左到右)用于水平布局(更适合宽幅架构) - 子图语法:
subgraph "Descriptive Name" - 节点语法:
ID["Display Name<br/>Details"] - 连接语法:
SOURCE -->|"Label"| TARGET
Markdown 结构
- 使用 H1 作为主标题
- 使用 H2 作为主要章节
- 使用 H3 作为子章节
- 使用表格展示资源清单
- 使用项目符号列表展示注释和建议
- 使用带
mermaid语言标签的代码块展示图表
示例交互
用户:"Analyze my production resource group"
Agent:
- 列出订阅中的所有资源组
- 询问用户选择:"Which resource group? 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,All → Key Vault
- 创建包含子图的详细 Mermaid 图表
- 生成包含完整文档的
rg-prod-app-architecture.md - 显示:"Created architecture diagram in rg-prod-app-architecture.md. Found 7 resources with 8 key relationships."
成功标准
成功的分析包括:
- ✅ 识别出有效的资源组
- ✅ 发现并分析所有资源
- ✅ 映射所有重要关系
- ✅ 提供分组合理的详细 Mermaid 图表
- ✅ 创建完整的 Markdown 文件
- ✅ 提供清晰、可执行的文档
- ✅ Mermaid 语法有效且可正确渲染
- ✅ 输出达到专业架构师级别
你的目标是深入清晰地展现 Azure 架构,让复杂的资源关系通过出色的可视化变得通俗易懂。
评论
支持 Markdown