返回技能市场
开发运维 安全

azure-resource-visualizer

@admin/azure-resource-visualizer

Analyze Azure resource groups and generate detailed Mermaid architecture diagrams showing the relationships between individual resources. WHEN: create architecture diagram, visualize Azure resources, show resource relationships, generate Mermaid diagram, analyze resource group, diagram my resources, architecture visualization, resource topology, map Azure infrastructure.

admin 热度 211v0.0.1

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

获得资源组后:

  1. 查询所有资源 在资源组中使用 Azure MCP 工具或 az
  2. 分析每个资源 类型并捕获:
  • 资源名称和类型
  • SKU/层级信息
  • 位置/区域
  • 关键配置属性
  • 网络设置(VNets、子网、私有终结点)
  • 身份与访问(Managed Identity、RBAC)
  • 依赖和连接
  1. 映射关系 通过识别:
  • 网络连接:VNet 对等、子网分配、NSG 规则、私有终结点
  • 数据流:Apps → Databases,Functions → Storage,API Management → Backends
  • 身份:连接到资源的托管身份
  • 配置:指向 Key Vaults 的 App Settings、连接字符串
  • 依赖:父子关系、必需资源
重要:你必须仅使用占位符名称表示机密值,例如密钥、连接字符串、Key Vault 机密等。在图中使用有意义的占位符名称表示每个机密。绝不将机密值放入资源图中。

步骤 3:图构建

使用 graph TB(自上而下)或 graph LR(从左到右)格式创建详细 Mermaid 图

参见 [example-diagram.md](./assets/example-diagram.md) 获取完整示例架构图。

关键图要求:

  • 按层或用途分组:Network、Compute、Data、Security、Monitoring
  • 包含细节:在节点标签中包含 SKU、层级、重要设置(使用 <br/> 换行)
  • 标注所有连接:描述资源之间流动的内容(数据、身份、网络)
  • 使用有意义的节点 ID:可理解的缩写(APP、FUNC、SQL、KV)
  • 视觉层次:使用 Subgraphs 进行逻辑分组
  • 连接类型
  • --> 表示数据流或依赖
  • -.-> 表示可选/条件连接
  • ==> 表示关键/主路径

资源类型示例:

  • App Service:包含计划层级(B1、S1、P1v2)
  • Functions:包含运行时(.NET、Python、Node)
  • Databases:包含层级(Basic、Standard、Premium)
  • Storage:包含冗余(LRS、GRS、ZRS)
  • VNets:包含地址空间
  • Subnets:包含地址范围

步骤 4:文件创建

使用 [template-architecture.md](./assets/template-architecture.md) 作为模板,并创建名为 [resource-group-name]-architecture.md 的 markdown 文件,其中包含:

  1. 标题:资源组名称、订阅、区域
  2. 摘要:架构简要概述(2-3 段)
  3. 资源清单:列出所有资源及其类型和关键属性的表格
  4. 架构图:完整的 Mermaid 图
  5. 关系详情:关键连接和数据流的解释
  6. 备注:任何重要观察、潜在问题或建议

操作指南

质量标准

  • 准确性:在包含到图中之前验证所有资源细节
  • 完整性:不得省略资源;包含资源组中的所有内容
  • 清晰度:使用清晰、描述性标签和逻辑分组
  • 详细程度:包含对架构理解重要的配置细节
  • 关系:展示所有显著连接,而不仅是明显连接

工具使用模式

  1. Azure MCP Search
  • 使用 intent="list resource groups" 发现资源组
  • 使用 intent="list resources in group" 并提供组名以获取所有资源
  • 使用 intent="get resource details" 进行单个资源分析
  • 当你需要特定 Azure 操作时使用 command 参数
  1. 文件创建
  • 始终在工作区根目录创建,或如果存在则创建在 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>

约束与边界

始终执行:

  • ✅ 如果未指定则列出资源组
  • ✅ 在继续之前等待用户选择
  • ✅ 分析组中的全部资源
  • ✅ 创建详细、准确的图
  • ✅ 在节点标签中包含配置细节
  • ✅ 使用 subgraphs 对资源进行逻辑分组
  • ✅ 描述性标注所有连接
  • ✅ 创建包含图的完整 markdown 文件

绝不执行:

  • ❌ 因为资源看起来不重要而跳过
  • ❌ 在未验证的情况下对资源关系做出假设
  • ❌ 创建不完整或占位符图
  • ❌ 省略影响架构的配置细节
  • ❌ 未确认资源组选择就继续
  • ❌ 生成无效的 Mermaid 语法
  • ❌ 修改或删除 Azure 资源(只读分析)

边缘情况与错误处理

  • 未发现资源:告知用户并验证资源组名称
  • 权限问题:解释缺失内容并建议检查 RBAC
  • 复杂架构(50+ 资源):考虑按层创建多个图
  • 跨资源组依赖:在图备注中标注外部依赖
  • 无明显关系的资源:归入 “Other Resources” 部分

输出格式规范

Mermaid 图语法

  • 对垂直布局使用 graph TB(自上而下)
  • 对水平布局使用 graph LR(从左到右)(更适合宽架构)
  • Subgraph 语法:subgraph "Descriptive Name"
  • 节点语法:ID["Display Name<br/>Details"]
  • 连接语法:SOURCE -->|"Label"| TARGET

Markdown 结构

  • 使用 H1 作为主标题
  • 使用 H2 作为主要部分
  • 使用 H3 作为子部分
  • 使用表格进行资源清单
  • 使用项目符号列表进行备注和建议
  • 使用带有 mermaid 语言标签的代码块放置图

成功标准

成功的分析包括:

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

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

qianwen skills install @admin/azure-resource-visualizer