关于 azure-resource-visualizer
Azure Resource Visualizer 是一个 Skill,用于检查 Azure 资源组并生成 Mermaid 架构图与 Markdown 文档。适合需要理解资源之间关系的架构师和运维人员。
主要功能
- 01列出并选择资源组
- 02分析资源配置与依赖关系
- 03生成分层 Mermaid 架构图
- 04输出含资源清单的 Markdown 文档
- 05只读分析,不修改 Azure 资源
适用场景
- 01梳理资源组内各资源之间的网络与数据流
- 02为现有 Azure 环境生成架构文档
- 03检查应用与 Key Vault、存储之间的身份关系
MCP 相关
该 Skill 通过 Azure MCP 搜索工具查询资源组与资源详情,必要时使用 az 命令行补充查询。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ microsoft/ azure-skills --skill azure-resource-visualizer安装后在 Claude Code 中输入/azure-resource-visualizer确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/example-diagram.mdtemplate-architecture.mdreferences/azure-resource-graph.md详细介绍
Azure Resource Visualizer - 架构图生成器
用户可能会寻求帮助,以了解各个资源如何组合在一起,或创建展示它们之间关系的图表。你的任务是检查 Azure 资源组,了解其结构和关系,并生成全面的 Mermaid 图表,清晰地展示架构。
核心职责
- 资源组发现:未指定资源组时,列出可用的资源组
- 深入分析资源:检查所有资源及其配置和相互依赖关系
- 关系映射:识别并记录资源之间的所有连接
- 生成图表:创建详细且准确的 Mermaid 图表
- 创建文档:生成包含嵌入式图表的清晰 Markdown 文件
工作流程
第 1 步:选择资源组
如果用户没有指定资源组:
- 使用你的工具查询可用的资源组。如果你没有可用的工具,请使用
az。 - 按编号列出资源组及其位置
- 请用户按编号或名称选择一个
- 等待用户回复后再继续
如果已指定资源组,请验证其是否存在,然后继续。
第 2 步:发现并分析资源
如需跨订阅批量发现资源,请使用 Azure Resource Graph 查询。有关跨订阅资源清单和关系发现模式,请参阅 Azure Resource Graph Queries。
找到资源组后:
-
使用 Azure MCP 工具或
az查询该资源组中的所有资源。 -
分析每种资源类型并记录:
- 资源名称和类型
- SKU/层级信息
- 位置/区域
- 关键配置属性
- 网络设置(虚拟网络、子网、专用终结点)
- 身份和访问权限(托管身份、RBAC)
- 依赖关系和连接
-
通过识别以下内容来映射关系:
- 网络连接:虚拟网络对等互连、子网分配、网络安全组规则、专用终结点
- 数据流:应用 → 数据库、函数 → 存储、API Management → 后端
- 身份:连接到资源的托管身份
- 配置:指向 Key Vault 的应用设置、连接字符串
- 依赖关系:父子关系、必需资源
重要:你只能使用占位符名称来表示密钥、连接字符串、Key Vault 密钥等机密值。请在图表中使用有意义的占位符名称表示每个机密。切勿在资源图表中放入机密值。
第 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)
- 数据库:注明层级(Basic、Standard、Premium)
- 存储:注明冗余类型(LRS、GRS、ZRS)
- 虚拟网络:注明地址空间
- 子网:注明地址范围
步骤 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 个以上资源):考虑按层创建多个图表
- 跨资源组依赖关系:在图表备注中注明外部依赖项
- 关系不明确的资源:归入“其他资源”部分
输出格式规范
Mermaid 图语法
- 垂直布局使用
graph TB(从上到下) - 水平布局使用
graph LR(从左到右;更适合宽幅架构) - 子图语法:
subgraph "描述性名称" - 节点语法:
ID["显示名称<br/>详情"] - 连接语法:
SOURCE -->|"标签"| TARGET
Markdown 结构
- 主标题使用 H1
- 主要章节使用 H2
- 子章节使用 H3
- 使用表格列出资源清单
- 使用项目符号列表记录备注和建议
- 使用带有
mermaid语言标签的代码块来展示图表
成功标准
成功的分析包括:
- ✅ 识别出有效的资源组
- ✅ 发现并分析所有资源
- ✅ 映射所有重要关系
- ✅ 提供分组合理的详细 Mermaid 图表
- ✅ 创建完整的 Markdown 文件
- ✅ 提供清晰、可执行的文档
- ✅ Mermaid 语法有效且可正确渲染
- ✅ 输出达到专业架构师级别
你的目标是深入清晰地展现 Azure 架构,让复杂的资源关系通过出色的可视化变得通俗易懂。