快速入门:使用 Azure PowerShell 运行 Resource Graph 查询

本快速入门介绍如何使用适用于 Azure PowerShell 的 Az.ResourceGraph 模块运行 Azure Resource Graph 查询。 该模块包含在最新版本的 Azure PowerShell 中,并为 Resource Graph 添加了 cmdlet

本文还演示如何对查询结果进行排序和限定。 可以针对租户、管理组或订阅中的资源运行查询。

先决条件

安装此模块

如果安装了最新版本的 PowerShell 和 Azure PowerShell,则你已经拥有 Az.ResourceGraph 模块和所需的 PowerShellGet 版本。

可选模块安装

使用以下步骤安装 Az.ResourceGraph 模块,以便可以使用 Azure PowerShell 运行 Azure Resource Graph 查询。 Azure Resource Graph 模块需要 PowerShellGet 2.0.1 或更高版本。

  1. 验证 PowerShellGet 版本:

    Get-Module -Name PowerShellGet
    

    如果需要更新,请转到 PowerShellGet

  2. 安装 模块:

    Install-Module -Name Az.ResourceGraph -Repository PSGallery -Scope CurrentUser
    

    该命令将模块安装在 CurrentUser 范围内。 如果需要在 AllUsers 范围内安装,请从管理 PowerShell 会话运行安装。

  3. 验证是否已安装模块:

    Get-Command -Module Az.ResourceGraph -CommandType Cmdlet
    

    该命令显示 Search-AzGraph cmdlet 版本,并将模块加载到 PowerShell 会话中。

连接到 Azure

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

Connect-AzAccount -Environment AzureChinaCloud

# Run these commands if you have multiple subscriptions
Get-AzSubScription
Set-AzContext -Subscription <subscriptionID>

运行查询

将模块添加到环境后,可以运行基于租户的查询。 此示例中的查询返回五个 Azure 资源,其中包含每个资源的 nametype。 若要按管理组或订阅进行查询,请使用 -ManagementGroup-Subscription 参数。

  1. 使用 Search-AzGraph cmdlet 运行 Azure Resource Graph 查询:

    Search-AzGraph -Query 'Resources | project name, type | limit 5'
    

    此查询示例不使用排序修饰符,如 order by。 如果多次运行查询,每次请求可能会产生一组不同的资源。

  2. 更新查询以 order by name 属性:

    Search-AzGraph -Query 'Resources | project name, type | limit 5 | order by name asc'
    

    与前一个查询一样,如果多次运行此查询,可能会为每个请求生成一组不同的资源。 查询命令的顺序非常重要。 在本例中,order by 位于 limit 之后。 查询将结果限制为五个资源,然后按名称对这些结果进行排序。

  3. 更新查询以 order by name 属性,然后将输出 limit 为五个结果:

    Search-AzGraph -Query 'Resources | project name, type | order by name asc | limit 5'
    

    如果在不改变环境的情况下多次运行此查询,结果将保持一致,并按 name 属性排序,但仍仅限于五个结果。 查询按名称对结果进行排序,然后将输出限制为五个资源。

如果查询未从你已有权访问的订阅返回结果,请注意 Search-AzGraph cmdlet 默认为默认上下文中的订阅。 若要查看作为默认上下文一部分的订阅 ID 列表,请运行此 (Get-AzContext).Account.ExtendedProperties.Subscriptions。如果你希望搜索你有权访问的所有订阅,可以通过运行 $PSDefaultParameterValues=@{"Search-AzGraph:Subscription"= $(Get-AzSubscription).ID}Search-AzGraph cmdlet 设置 PSDefaultParameterValues

清理资源

若要退出登录 Azure PowerShell 会话,请执行以下操作:

Disconnect-AzAccount

可选清理步骤

如果安装了最新版本的 Azure PowerShell,则包含 Az.ResourceGraph 模块,不应将其删除。 如果手动安装了 Az.ResourceGraph 模块并想要将其模块,则可选择执行以下步骤。

若要从 PowerShell 会话中删除 Az.ResourceGraph 模块,请运行以下命令:

Remove-Module -Name Az.ResourceGraph

若要从计算机中卸载 Az.ResourceGraph 模块,请运行以下命令:

Uninstall-Module -Name Az.ResourceGraph

可能会显示“模块 Az.ResourceGraph 当前正在使用”的消息。 如果是这样,则需要关闭 PowerShell 会话并启动新会话。 然后运行命令,从计算机中卸载模块。

后续步骤

本快速入门介绍了如何将 Resource Graph 模块添加到 Azure PowerShell 环境并运行查询。 若要了解详细信息,请转到“查询语言详细信息”页面。