你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

什么是 Azure Resource Graph?

Azure Resource Graph 是一项 Azure 服务,旨在通过提供高效、高性能的资源探索来扩展 Azure 资源管理。 Resource Graph 能够在一组给定的订阅中进行大规模查询,以便有效地控制环境。 这些查询提供以下功能:

  • 通过复杂筛选、分组和按资源属性排序来查询资源。
  • 基于治理要求以迭代方式浏览资源。
  • 评估在大量云环境中应用策略所产生的影响。
  • 查询对资源属性所做的更改

在本文档中,你将了解各项功能的详细信息。

注意

Azure Resource Graph 支持 Azure 门户的搜索栏、浏览“所有资源”的全新体验,以及 Azure Policy 的更改历史记录视觉差异。 它旨在帮助客户管理大规模环境。

注意

此服务支持 Azure Lighthouse;通过它,服务提供商可登录自己的租户来管理客户委托的订阅和资源组。

Resource Graph 如何补充了 Azure 资源管理器

Azure 资源管理器目前支持对基本的资源字段进行查询,具体而言就是:

  • 资源名称
  • ID
  • 类型
  • 资源组
  • 订阅
  • 位置

Azure 资源管理器还提供设施,用于调用各个资源提供程序以获取详细的属性,每次仅限一个资源。

使用 Azure Resource Graph,可以访问资源提供程序返回的这些属性,无需对资源提供程序进行单独调用。 有关支持的资源类型列表,请查阅表和资源类型参考。 若要查看支持的资源类型,另一种方法是通过 Azure Resource Graph 资源管理器架构浏览器

使用 Azure Resource Graph,可以:

  • 访问资源提供程序返回的属性,而无需对每个资源提供程序进行单独调用。
  • 查看过去 14 天的资源配置更改,了解更改了哪些属性以及是何时更改的。

注意

作为预览功能,一些 type 对象可提供其他非资源管理器属性。 有关详细信息,请参阅扩展属性

如何让 Resource Graph 保持最新

更新 Azure 资源时,Azure 资源管理器通知 Azure Resource Graph 有关更改的信息。 Azure Resource Graph 随后就会更新其数据库。 Azure Resource Graph 也会定期进行完全扫描。 如果有错过的通知,或者资源在 Azure 资源管理器之外得到更新时, 此扫描可确保 Azure Resource Graph 数据是最新的。

注意

Resource Graph 使用每个资源提供程序的最新非预览版应用程序编程接口 (API) 的 GET 来收集属性和值。 因此,预期的属性可能不可用。 在某些情况下,会覆盖所使用的 API 版本,以便在结果中提供更多当前或广泛使用的属性。 有关环境中的完整列表,请参阅显示每种资源类型的 API 版本示例。

查询语言

现在,你已更好地了解了 Azure Resource Graph,我们来深入了解如何构造查询。

务必要了解的一点是,Azure Resource Graph 的查询语言基于 Azure 数据资源管理器使用的 Kusto 查询语言 (KQL)

首先,有关可以在 Azure Resource Graph 中使用的操作和函数,请参阅 Resource Graph 查询语言。 若要浏览资源,请参阅浏览资源

Azure Resource Graph 中的权限

若要使用 Resource Graph,必须在 Azure 基于角色的访问控制 (Azure RBAC) 中拥有适当的权限,以便对想要查询的资源至少进行 read 访问。 如果你对 Azure 对象或对象组没有至少 read 权限,则不会返回任何结果。

注意

Resource Graph 使用主体在登录期间可用的订阅。 若要查看在活动会话期间添加的新订阅的资源,主体必须刷新上下文。 此操作在注销并重新登录时自动发生。

Azure CLI 和 Azure PowerShell 使用用户有权访问的订阅。 使用 REST API 时,订阅列表由用户提供。 如果用户有权访问列表中的任何订阅,则返回用户有权访问的订阅的查询结果。 此行为与调用 Resource Groups - List 时相同,因为你可以获取有权访问的资源组,而不会指示结果可能是部分的。 如果订阅列表中没有用户具有适当权限的订阅,则响应为“403 (已禁止)”。

注意

在 REST API 预览版 2020-04-01-preview 中,可能会省略订阅列表。 如果未在请求中定义 subscriptionsmanagementGroupId 属性,范围将设置为“租户”。 有关详细信息,请参阅查询范围

限制

为了为所有客户提供最佳体验和响应时间,对 Resource Graph 的查询(以免费服务的形式提供)将受到限制。 如果你的组织希望使用 Resource Graph API 进行大规模的频繁查询,请使用 Resource Graph 门户页面中的门户“反馈”。 请提供你的业务案例并选中“Microsoft 可以针对你的反馈向你发送电子邮件”复选框,以便团队与你联系。

Resource Graph 在用户级别对查询进行限制。 服务响应包含以下 HTTP 标头:

  • x-ms-user-quota-remaining (int):用户的剩余资源配额。 此值映射到查询计数。
  • x-ms-user-quota-resets-after (hh:mm:ss):在用户的配额消耗量重置之前的持续时间

有关详细信息,请参阅针对受限制请求的指南

运行自己的第一个查询

Azure Resource Graph 资源管理器是 Azure 门户的一部分,支持直接在 Azure 门户中运行 Resource Graph 查询。 将结果固定为动态图表,以便向门户工作流提供实时动态信息。 有关详细信息,请访问使用 Azure Resource Graph 浏览器进行第一次查询

Resource Graph 还支持 Azure CLI、Azure PowerShell 和 REST API。 对于每种语言,查询结构相同。 了解如何使用以下项启用 Resource Graph:

警报与 Log Analytics 的集成

注意

Azure Resource Graph 警报与 Log Analytics 的集成以公共预览版提供。

可使用 Azure Resources Graph 查询或通过 Azure Monitor 将 Log Analytics 与 Azure Resources Graph 查询集成来创建警报规则。 这两种方法都可用于为 Azure 资源创建警报。 有关示例,请转到快速入门:使用 Azure Resource Graph 和 Log Analytics 创建警报

使用 Power BI 连接器运行查询

Azure Resource Graph Power BI 连接器在租户级别运行查询,但你可以将范围更改为订阅或管理组。 如果查询结果超过 1,000 条记录,则可使用 Power BI 连接器的一个可选设置来返回所有记录。 有关详细信息,请参阅快速入门:使用 Azure Resource Graph Power BI 连接器运行查询

后续步骤