mcpField
A
azure-resource-visualizer

azure-resource-visualizer

github.com/github云与 DevOps40.5k8.9k 次安装1 天前更新
代码仓库

关于 azure-resource-visualizer

用于分析 Azure 资源组并以 Mermaid 图和 Markdown 记录架构的技能,指导资源发现、关系梳理和只读分析,帮助理解 Azure 部署。

主要功能

  1. 01发现资源组及其中的资源
  2. 02检查配置与依赖关系
  3. 03梳理网络、数据和身份关联
  4. 04生成分层 Mermaid 架构图
  5. 05创建 Markdown 清单与说明

适用场景

  1. 01了解 Azure 资源组中的资源
  2. 02记录 Azure 服务间的连接
  3. 03审查网络和身份依赖
  4. 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 图。

核心职责

  1. 资源组发现:在未指定时列出可用资源组
  2. 深度分析:分析所有资源、其配置和相互依赖关系
  3. 关系映射:识别并记录资源之间的连接
  4. 图表生成:创建详细、准确的 Mermaid 图
  5. 文档创建:生成带有嵌入图表的清晰 markdown 文件

工作流流程

第 1 步:资源组选择

如果用户尚未指定资源组:

  1. 使用你的工具查询可用资源组。如果你没有用于此目的的工具,请使用 az。
  2. 以编号列表展示资源组及其位置
  3. 要求用户按编号或名称选择一个
  4. 在继续之前等待用户回复

如果已指定资源组,请验证其存在并继续。

第 2 步:资源发现与分析

一旦你拥有资源组:

  1. 查询所有资源:使用 Azure MCP 工具或 az 查询资源组中的所有资源。

  2. 分析每个资源类型并捕获:

    • 资源名称和类型
    • SKU/层级信息
    • 位置/区域
    • 关键配置属性
    • 网络设置(VNet、子网、专用终结点)
    • 身份和访问(托管标识、RBAC)
    • 依赖关系和连接
  3. 映射关系,通过识别:

    • 网络连接: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 文件,其中包含:

  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 参数
  2. 文件创建:

    • 始终在工作区根目录或 docs/ 文件夹(如果存在)中创建
    • 使用清晰、描述性的文件名:[rg-name]-architecture.md
    • 确保 Mermaid 语法有效(输出前在脑海中测试语法)
  3. 终端(需要时):

    • 对于通过 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:

  1. 列出订阅中的所有资源组
  2. 询问用户选择:"Which resource group? 1) rg-prod-app, 2) rg-dev-app, 3) rg-shared"
  3. 用户选择:"1"
  4. 查询 rg-prod-app 中的所有资源
  5. 分析:App Service、Function App、SQL Database、Storage Account、Key Vault、VNet、NSG
  6. 识别关系:App → Function,Function → SQL,Function → Storage,All → Key Vault
  7. 创建包含子图的详细 Mermaid 图表
  8. 生成包含完整文档的 rg-prod-app-architecture.md
  9. 显示:"Created architecture diagram in rg-prod-app-architecture.md. Found 7 resources with 8 key relationships."

成功标准

成功的分析包括:

  • ✅ 识别出有效的资源组
  • ✅ 发现并分析所有资源
  • ✅ 映射所有重要关系
  • ✅ 提供分组合理的详细 Mermaid 图表
  • ✅ 创建完整的 Markdown 文件
  • ✅ 提供清晰、可执行的文档
  • ✅ Mermaid 语法有效且可正确渲染
  • ✅ 输出达到专业架构师级别

你的目标是深入清晰地展现 Azure 架构,让复杂的资源关系通过出色的可视化变得通俗易懂。

评论

支持 Markdown