如何使用Azure Resource Graph Explorer查询获取每个订阅的资源计数列表?

js4nwp54  于 2023-05-23  发布在  其他
关注(0)|答案(1)|浏览(127)

我正在尝试获取每个订阅的资源计数列表。这很简单,Azure也有关于如何做到这一点的文档。这是我的版本。

resources
| join kind=inner (
    resourcecontainers
    | where type == "microsoft.resources/subscriptions"
    | project subscriptionId, subscriptionName = name )
    on subscriptionId
| summarize count() by subscriptionName
| sort by count_ desc

我不明白的是如何在这个表上包含0个资源的订阅?
resources | where type == "microsoft.resources/subscriptions"只包含至少有一个资源的订阅,但不包含空订阅。当我检查resourcecontainers表时,大约有30多个订阅没有显示在上面的查询中。这30个订阅是空的。
我今天了解到,let或在Azure Resource Graph Explorer中创建变量是not supported。否则,我可以将上面的结果赋给一个变量,并执行类似于“resourcecontainers”的操作|其中subscriptionName!in result_variable.subscriptionName”,然后union这两个结果。
我的最后一招是导出两个表的结果,并使用Bash/PowerShell生成我需要的内容,但我只是想在这里问一下,是否有人知道如何直接在Azure Resource Graph Explorer中执行此操作?Thanks:)

vq8itlhq

vq8itlhq1#

您需要在resourcecontainers和resources表之间执行左外联接。试试这个:

resourcecontainers
| where type == "microsoft.resources/subscriptions"
| project subscriptionId, subscriptionName = name
| join kind=leftouter (resources | project subscriptionId, id) on subscriptionId
| summarize countif(isempty(id) == false) by subscriptionName

相关问题