创建一个包含按 Tenant/Directory 分组的订阅列表的参数 - Azure Resource Graph

Create a Parameter containing list of Subscriptions grouped by Tenant/Directory - Azure Resource Graph

我正在尝试创建一个工作簿参数下拉列表,我们可以在其中选择订阅进行过滤。
但是,1 个租户/目录可能有一个或多个订阅。
而不是像这样的扁平订阅下拉列表:,

有没有办法创建一个按 Tenant/Directory 分组的订阅下拉列表,类似于 Azure Resource Graph Explorer 页面(位于右侧),如下所示:?

租户 1

租户 2

租户 3

非常感谢您的帮助。

部分解决方案:

  1. 创建一个新参数
  2. 选择“订阅选择器”作为参数类型
  3. 选择“查询”作为“从中获取数据”选项
  4. 在查询中,将数据源设置为“Azure Resource Graph”
  5. 选择全部或默认(订阅筛选订阅)作为订阅值
  6. 使用查询
ResourceContainers | where type =~ "microsoft.resources/subscriptions"
// add any other filters you want here
| project id, name, group=tenantId

您将获得一个按租户分组的下拉参数。

限制:Azure Resource Graph 没有租户 names(不知道为什么),所以下拉列表本身不会有那些。如果您需要租户名称,您可能需要单独查询 ARM 以通过名称+ID 获取所有租户并与之合并?

更新: Jason 使用合并获取数据的额外步骤,我不确定为什么我没有想到这一点。

您可以使用 ARM 数据源并查询 /tenants api 以获取要在合并中使用的信息:

不过,在我这里,我只是让租户回到该列表中,所以我无法验证它是否会起作用并为您提供所有租户。我发誓我可以访问不止一个,但我只拿回了我的主要的?

在 John Gardner 的回答之上,我设法通过在 2 个查询之间创建合并来让它工作。一个用于资源图,一个在 KQL 上,指的是在 TenantId 和租户名称之间映射的外部 Blob 存储。 创建参数,使用 Merge 和 select Tenant Name 字段,将其重命名为“group”。