You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Azure REST API获取Azure门户诊断设置关联的资源列表

获取Azure门户诊断设置中资源列表的API方案

我之前也碰到过一样的需求——Azure门户里直接看不到诊断设置对应的完整资源列表,用单个诊断设置接口拿不到想要的结果。这里给你两个实用的方法,能精准拿到门户里展示的那份资源列表:

方法1:用Azure Resource Graph批量查询(推荐)

这是最高效的方式,和门户后台的逻辑一致,能跨订阅快速筛选出所有配置了诊断设置的资源。

你可以用Kusto查询语句来定义筛选规则:

Resources
| where type contains "Microsoft.Insights/diagnosticSettings"
| project ResourceName = name, ResourceGroup = resourceGroup, SubscriptionId = subscriptionId, ResourceType = type

然后调用Azure Resource Graph的REST API:
POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2021-03-01
请求体里带上上面的查询语句,格式如下:

{
    "query": "Resources | where type contains \"Microsoft.Insights/diagnosticSettings\" | project ResourceName = name, ResourceGroup = resourceGroup, SubscriptionId = subscriptionId, ResourceType = type"
}

如果用Azure CLI的话更简单,直接跑这条命令:

az graph query -q "Resources | where type contains 'Microsoft.Insights/diagnosticSettings' | project ResourceName = name, ResourceGroup = resourceGroup, SubscriptionId = subscriptionId, ResourceType = type"

方法2:遍历资源+诊断设置接口联动

如果需要每个资源的具体诊断配置细节,可以用这个分步方法:

  • 第一步:先获取订阅下所有支持诊断设置的资源(比如虚拟机、App Service、存储账户这些),调用资源列表API:
    GET https://management.azure.com/subscriptions/{subscriptionId}/resources?api-version=2021-04-01
    你可以通过$filter参数过滤特定资源类型,比如$filter=type eq 'Microsoft.Compute/virtualMachines'。
  • 第二步:对每个拿到的资源ID,调用诊断设置列表接口:
    GET https://management.azure.com/{resourceId}/providers/Microsoft.Insights/diagnosticSettings?api-version=2021-05-01-preview
  • 第三步:收集所有返回了诊断设置的资源,整理成列表,这就是门户里展示的内容。

关键注意点

  • 确保你的账号有Monitoring Reader或者Contributor权限,不然会被API拒绝访问。
  • 如果涉及多个订阅,记得遍历每个订阅执行查询或API调用。

内容的提问来源于stack exchange,提问作者prashant k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:17:22