快速入门:使用 REST API 运行 Resource Graph 查询

本快速入门介绍如何使用 REST API 运行 Azure Resource Graph 查询并查看结果。 REST API 元素是包括 API 版本和请求正文(其中包含查询)的 URI。 示例使用 Azure CLI 登录到 Azure,并验证你的帐户是否有权运行 az rest 命令。

如果不熟悉 REST API,请首先查看 Azure REST API 参考,大致了解 REST API,尤其是请求 URI 和请求正文。 有关 Azure Resource Graph 规范,请参阅 Azure Resource Graph REST API

先决条件

连接到 Azure

从 Visual Studio Code 终端会话连接到 Azure。 如果具有多个订阅,请运行命令以将上下文设置为你的订阅。 将 {subscriptionID} 替换为你的 Azure 订阅 ID。

az login

# Run these commands if you have multiple subscriptions
az account list --output table
az account set --subscription {subscriptionID}

即使使用的是 PowerShell,也请使用 az login,因为示例使用 Azure CLI az rest 命令。

查看 REST API 语法

运行 REST API 命令需要两个元素:REST API URI 和请求正文。 有关信息,请参阅资源。 若要按管理组进行查询,请将 managementGroups 参数与 subscriptions 结合使用。 若要查询整个租户,请省略请求正文中的 managementGroupssubscriptions 属性。

以下示例演示了用于针对 Azure 订阅运行查询的 REST API URI 语法。

POST https://management.chinacloudapi.cn/providers/Microsoft.ResourceGraph/resources?api-version=2022-10-01

需要提供请求正文才能使用 REST API 运行查询。 以下示例是用于创建请求正文文件的 JSON。

{
  "subscriptions": [
    "{subscriptionID}"
  ],
  "query": "Resources | project name, type | limit 5"
}

运行 Resource Graph 查询

示例使用相同的 az rest 命令,但你可以更改请求正文以获得不同的结果。 示例将列出资源、按 name 属性对资源进行排序、按 name 属性对资源进行排序,并限制结果数量。

若要运行所有查询示例,请对 shell 环境中使用以下 az rest 命令:

az rest --method post --uri https://management.chinacloudapi.cn/providers/Microsoft.ResourceGraph/resources?api-version=2022-10-01 --body `@request-body.json

在 PowerShell 中,需要使用反撇号 (`) 来转义 at sign (@) 才能为请求正文指定文件名。

在每个请求正文示例中,请将 {subscriptionID} 替换为你的 Azure 订阅 ID。 运行以下命令以获取请求正文的 Azure 订阅 ID:

az account show --query id --output tsv

列出资源

在 Visual Studio Code 中,创建一个名为 request-body.json 的新文件。 将以下 JSON 复制并粘贴到文件中,然后保存该文件。

该查询返回五个 Azure 资源,其中包含每个资源的 nameresource type

{
  "subscriptions": [
    "{subscriptionID}"
  ],
  "query": "Resources | project name, type | limit 5"
}

由于此查询示例未提供排序修饰符(例如 order by),因此多次运行此查询会为每个请求生成一组不同的资源。

按 name 属性排序

使用以下代码更新 request-body.json,这会将查询更改为按 name 属性进行 order by。 保存文件并使用 az rest 命令运行查询。

{
  "subscriptions": [
    "{subscriptionID}"
  ],
  "query": "Resources | project name, type | limit 5 | order by name asc"
}

如果多次运行此查询,则会为每个请求生成一组不同的资源。

查询命令的顺序非常重要。 在本例中,order by 位于 limit 之后。 此命令顺序将查询结果限制为五个资源,然后对其进行排序。

按 name 属性排序并限制结果

使用以下代码更新 request-body.json,以便按 name 属性进行 order by,然后对前五个结果运行 limit。 保存文件并使用相同的 az rest 命令运行查询。

{
  "subscriptions": [
    "{subscriptionID}"
  ],
  "query": "Resources | project name, type | order by name asc | limit 5"
}

假设环境中没有任何变化,则多次运行该查询时,返回的结果将是一致的且按 name 属性排序,但限制为前五个结果。

清理资源

退出登录 Azure CLI 会话。

az logout

后续步骤

在本快速入门中,你使用 Azure Resource Graph REST API 终结点运行了查询。 若要详细了解 Resource Graph 语言,请继续阅读查询语言详细信息页。