azure-resource-lookup

azure-resource-lookup

热门

列出、查找和展示跨订阅或资源组的 Azure 资源。处理诸如“列出我的订阅中的网站”、“列出我的 Web 应用”、“显示我的应用服务”、“列出虚拟机”、“列出我的 VM”、“显示存储帐户”、“查找容器应用”以及“我有哪些资源”等提示。用途:列出网站、列出 Web 应用、列出应用服务、显示订阅中的网站、资源清单、按标签查找资源、标签分析、孤立资源发现(非成本分析)、未附加磁盘、按类型统计资源、跨订阅查找以及 Azure Resource Graph 查询。请勿用于:部署/更改资源(使用 azure-deploy)、成本优化(使用 azure-cost)或非 Azure 云。

1196Star
196Fork
更新于 2026/6/9
SKILL.md
readonly只读
name
azure-resource-lookup
description

列出、查找和展示跨订阅或资源组的 Azure 资源。处理诸如\"列出我的订阅中的网站\"、\"列出我的 Web 应用\"、\"显示我的应用服务\"、\"列出虚拟机\"、\"列出我的 VM\"、\"显示存储帐户\"、\"查找容器应用\"以及\"我有哪些资源\"等提示。用途:列出网站、列出 Web 应用、列出应用服务、显示订阅中的网站、资源清单、按标签查找资源、标签分析、孤立资源发现(非成本分析)、未附加磁盘、按类型统计资源、跨订阅查找以及 Azure Resource Graph 查询。请勿用于:部署/更改资源(使用 azure-deploy)、成本优化(使用 azure-cost)或非 Azure 云。

Azure Resource Lookup

列出、查找和发现跨订阅和资源组的任意类型的 Azure 资源。当专用 MCP 工具无法覆盖资源类型时,使用 Azure Resource Graph (ARG) 进行快速的跨域查询。

何时使用此技能

当用户想要以下操作时使用此技能:

  • 列出任意类型的资源(VM、Web 应用、存储帐户、容器应用、数据库等)
  • 显示特定订阅或资源组中的资源
  • 查询跨多个订阅或资源类型的资源
  • 查找孤立资源(未附加磁盘、未使用的 NIC、空闲 IP)
  • 发现缺少必需标签或配置的资源
  • 获取涵盖多种类型的资源清单
  • 查找处于特定状态的资源(不健康、预配失败、已停止)
  • 回答“我有哪些资源?”或“显示我的 Azure 资源
  • 列出 Web 应用、网站或应用服务

⚠️ 警告: 应用服务/Web 应用没有专用的 MCP list 命令。诸如“列出网站”、“列出 Web 应用”或“列出应用服务”的提示必须通过此技能路由以使用 Azure Resource Graph。

💡 提示: 对于单一资源类型的查询,首先检查是否有专用 MCP 工具可以处理(见下方路由表)。如果没有,则使用 Azure Resource Graph。

快速参考

属性
查询语言 KQL(Kusto 查询语言子集)
CLI 命令 az graph query -q "<KQL>" -o table
扩展 az extension add --name resource-graph
MCP 工具 extension_cli_generate,意图为 az graph query
最佳用途 跨订阅查询、孤立资源、标签审计

MCP 工具

工具 用途 何时使用
extension_cli_generate 生成 az graph query 命令 主要工具 — 从用户意图生成 ARG 查询
mcp_azure_mcp_subscription_list 列出可用订阅 在查询前发现订阅范围
mcp_azure_mcp_group_list 列出资源组 缩小查询范围

工作流程

步骤 1:检查是否有专用 MCP 工具

对于单一资源类型的查询,检查是否有专用 MCP 工具可以处理:

资源类型 MCP 工具 覆盖范围
虚拟机 compute ✅ 完整 — 列表、详情、大小
存储帐户 storage ✅ 完整 — 帐户、Blob、表
Cosmos DB cosmos ✅ 完整 — 帐户、数据库、查询
Key Vault keyvault ⚠️ 部分 — 仅机密/密钥,无保管库列表
SQL 数据库 sql ⚠️ 部分 — 需要资源组名称
容器注册表 acr ✅ 完整 — 列出注册表
Kubernetes (AKS) aks ✅ 完整 — 集群、节点池
应用服务 / Web 应用 appservice ❌ 无 list 命令 — 使用 ARG
容器应用 ❌ 无 MCP 工具 — 使用 ARG
事件中心 eventhubs ✅ 完整 — 命名空间、中心
服务总线 servicebus ✅ 完整 — 队列、主题

如果存在覆盖完整的专用工具,则使用它。否则继续执行步骤 2。

步骤 2:生成 ARG 查询

使用 extension_cli_generate 构建 az graph query 命令:

mcp_azure_mcp_extension_cli_generate
  intent: "查询 Azure Resource Graph 以 <用户的请求>"
  cli-type: "az"

有关常见 KQL 模式,请参阅 Azure Resource Graph 查询模式

步骤 3:执行并格式化结果

运行生成的命令。使用 --query (JMESPath) 来格式化输出:

az graph query -q "<KQL>" --query "data[].{name:name, type:type, rg:resourceGroup}" -o table

使用 --first N 限制结果。使用 --subscriptions 限定范围。

错误处理

错误 原因 修复
resource-graph extension not found 扩展未安装 az extension add --name resource-graph
AuthorizationFailed 对订阅没有读取权限 检查 RBAC — 需要读者角色
BadRequest on query KQL 语法无效 验证表/列名;使用 =~ 进行不区分大小写的类型匹配
空结果 没有匹配的资源或范围错误 检查 --subscriptions 标志;验证资源类型拼写

约束

  • 始终使用 =~ 进行不区分大小写的类型匹配(类型为小写)
  • 始终使用 --subscriptions--first 限定查询范围,适用于大型租户
  • 优先使用专用 MCP 工具进行单一资源类型查询
  • 切勿使用 ARG 进行实时监控(数据有轻微延迟)
  • 切勿通过 ARG 尝试修改操作(只读)