我创建了一个逻辑应用程序(消耗)来使用 API 查询 Microsoft 资源图以获取某些打开的警报。该应用程序工作正常,但仅列出该订阅中的结果。我需要所有订阅的结果 - 请帮助我了解如何更改我的逻辑应用程序以更改范围而不将其部署在所有订阅中?
使用连接器列出来自 ARM 的所有订阅,但没有成功。
作为新手,请引导我正确的做法
期望所有订阅的结果,而不是部署逻辑应用的唯一订阅的结果。
您可以使用rest api列出所有订阅,并使用另一个rest api您可以查询逻辑应用程序中打开的警报。在此之前,您需要设置 AAD 应用程序进行身份验证并获取不记名令牌。请参阅此文档以获取令牌。
采用另一个 http 操作和方法作为 Get,其 URL 为“https://management.azure.com/subscriptions?api-version=2019-06-01”。将上一步获得的 token 传递到 Header 中,如下所示,
这将提供所有订阅的列表。
使用 for every 循环迭代每个订阅 ID,并使用 url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Insights/activityLogAlerts?api-version= 获取该特定订阅的警报2020年10月1日
这将为每个订阅提供警报。
运行逻辑应用程序并能够获取每个订阅的警报,
HTTP 输出:
HTTP2 的输出:
授予逻辑应用阅读器访问其他订阅的权限