教程:在 Azure 逻辑应用中运行 Azure Resource Graph 查询

Azure Resource Graph 资源管理器允许跨订阅、管理组和整个租户大规模查询资源。

如果需要定期查询资源以检查特定资源或管理属性并处理结果,则可以使用 Azure 逻辑应用。

本教程中,您将学习如何:

  • 编写一个计划定期运行的 Azure Resource Graph 查询
  • 使用系统分配的托管标识创建 Azure 逻辑应用
  • 设置托管标识以访问特定资源、资源组和订阅
  • 定期调用 Logic App 自动执行 Azure Resource Graph 查询

先决条件

若要完成本教程,需要一个 Azure 订阅。 如果您还没有,请在开始之前创建一个试用订阅

编写 Azure Resource Graph 查询

如果有想要定期运行的 Azure Resource Graph 查询,则可以使用该查询。 在本教程中,我们将使用以下查询来检索虚拟机的电源状态摘要。

Resources
| where type =~ 'microsoft.compute/virtualmachines'
| extend vmPowerState = tostring(properties.extended.instanceView.powerState.code)
| summarize count() by vmPowerState

有关详细信息,请转到 “示例 - 按电源状态汇总虚拟机”。

配置逻辑应用时,请再次使用该查询。

创建逻辑应用

  1. 在门户菜单中,选择 逻辑应用,或使用所有页面顶部的 Azure 搜索框搜索并选择 逻辑应用

  2. 选择屏幕左上角的 “添加 ”按钮,并继续创建逻辑应用。

  3. 创建逻辑应用时,请确保在“计划类型”下选择“消耗”。

设置托管身份

创建新的 System-Assigned 托管标识

在 Azure 门户中,导航到创建的逻辑应用。 选择页面左侧的“身份”。 然后,选择系统分配的标识按钮,将状态设置为 “开”,然后选择“ 保存”。

将角色分配项添加到托管标识

要使新创建的托管标识能够跨订阅、资源组和资源进行查询,需要通过角色分配来分配访问权限。 有关如何为托管标识分配角色的详细信息,请参见:将 Azure 角色分配给托管标识

配置并运行逻辑应用

在 Azure 门户中逻辑应用的代码视图中,粘贴:

{
    "definition": {
        "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
        "actions": {
            "HTTP_2": {
                "inputs": {
                    "authentication": {
                        "type": "ManagedServiceIdentity"
                    },
                    "body": {
                        "query": "Resources | where type =~ 'microsoft.compute/virtualmachines' | extend vmPowerState = tostring(properties.extended.instanceView.powerState.code) | summarize count() by vmPowerState"
                    },
                    "headers": {
                        "Content-Type": "application/json"
                    },
                    "method": "POST",
                    "queries": {
                        "api-version": "2021-03-01"
                    },
                    "uri": "https://management.chinacloudapi.cn/providers/Microsoft.ResourceGraph/resources"
                },
                "runAfter": {},
                "type": "Http"
            }
        },
        "contentVersion": "1.0.0.0",
        "outputs": {},
        "parameters": {},
        "triggers": {
            "Recurrence": {
                "recurrence": {
                    "frequency": "Minute",
                    "interval": 1440
                },
                "type": "Recurrence"
            }
        }
    },
    "parameters": {}
}

然后,转到 Azure 门户中逻辑应用的设计器视图,并根据需要修改设置。

最后,保存逻辑应用并运行它。

后续步骤

在本教程中,我们创建了一个 Azure 逻辑应用,该应用按设置间隔自动执行 ARG 查询请求。 若要了解有关 Resource Graph 语言的详细信息,请继续访问查询语言详细信息页,并尝试更多 Azure Resource Graph 查询。

如有疑问,请联系 resourcegraphsupport@microsoft.com