返回全部 Skills

azure-resource-visualizer

开发工具

分析 Azure 资源组并生成详细的 Mermaid 架构图,展示各个资源之间的关系。 适用场景:创建架构图、可视化 Azure 资源、展示资源关系、生成 Mermaid 图、分析资源组、绘制我的资源、架构可视化、资源拓扑、映射 Azure 基础设施。

299k

下载量

AI SkillHub 能力展示图

安装方式

命令行安装

在项目根目录执行以下命令,完成 Skill 安装。

npx bzskills add microsoft/azure-skills --skill azure-resource-visualizer

skill.md

name: azure-resource-visualizer
description: "分析 Azure 资源组并生成详细的 Mermaid 架构图,展示各个资源之间的关系。  \n适用场景:创建架构图、可视化 Azure 资源、展示资源关系、生成 Mermaid 图、分析资源组、绘制我的资源、架构可视化、资源拓扑、映射 Azure 基础设施。"
license: MIT
metadata:
    author: Microsoft
    version: "1.1.2"

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 查询](references/azure-resource-graph.md) 了解跨订阅清单和关系发现模式。

一旦你获得资源组:

  1. 查询资源组中的所有资源,使用 Azure MCP 工具或 az
  2. 分析每个资源类型 并捕获:
  • 资源名称和类型
  • SKU/层级信息
  • 位置/区域
  • 关键配置属性
  • 网络设置(VNet、子网、Private Endpoint)
  • 标识和访问(托管标识、RBAC)
  • 依赖关系和连接
  1. 映射关系,通过识别以下内容:
  • 网络连接:VNet 对等连接、子网分配、NSG 规则、Private Endpoint
  • 数据流:应用 → 数据库、函数 → 存储、API 管理 → 后端
  • 标识:连接到资源的托管标识
  • 配置:指向 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)
  • 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 参数
  1. 文件创建
  • 始终在 workspace 根目录或存在的 docs/ 文件夹中创建
  • 使用清晰、描述性的文件名:[rg-name]-architecture.md
  • 确保 Mermaid 语法有效(在输出前在心里测试语法)
  1. 终端(必要时)
  • 对于 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 结构

  • 一级标题用于主标题
  • 二级标题用于主要部分
  • 三级标题用于子部分
  • 使用表格展示资源清单
  • 使用项目符号列表列出说明和建议
  • 使用包含 mermaid 语言标签的代码块来展示图表

成功标准

一次成功的分析包括:

  • ✅ 已识别有效的资源组
  • ✅ 已发现并分析所有资源
  • ✅ 已映射所有重要关系
  • ✅ 已创建包含适当分组的详细 Mermaid 图表
  • ✅ 已创建完整的 Markdown 文件
  • ✅ 清晰、可操作的文档
  • ✅ 有效的 Mermaid 语法,能正确渲染
  • ✅ 专业、架构师级别的输出

你的目标是为 Azure 架构提供清晰度和洞察力,通过出色的可视化使复杂的资源关系易于理解。