如何获取所有资源组的名称、订阅名称与ID?解决重复显示问题
解决方案
要获取唯一的资源组名称、订阅名称及ID,避免重复显示,你可以用以下两种方式实现:
方法1:使用ResourceContainers表(推荐)
这个表专门存储Azure资源容器(包括资源组、订阅)的元数据,每个资源组仅对应一条记录,无需处理重复:
ResourceContainers | where type == 'microsoft.resources/subscriptions/resourcegroups' | project 资源组名称 = name, 订阅名称 = subscriptionName, 订阅ID = subscriptionId, 资源组ID = id
方法2:基于Resources表分组聚合
如果必须从Resources表查询,可通过分组提取每个资源组对应的唯一订阅信息(同一资源组下的所有资源都属于同一个订阅):
Resources | summarize 订阅ID = any(subscriptionId), 订阅名称 = any(subscriptionName) by 资源组名称 = resourceGroup | project 资源组名称, 订阅名称, 订阅ID
原查询重复的原因
你之前用Resources | distinct resourceGroup, id时,id是单个资源的ID,而非资源组的ID。同一资源组下有多个资源,每个资源都有独立的id,因此distinct会保留每一组(资源组名称,资源ID)的组合,导致同一资源组多次出现。如果要获取资源组的ID,应使用resourceGroupId字段而非资源的id字段。
内容的提问来源于stack exchange,提问作者Kamsiinov
相关产品推荐
相关产品推荐

