快速入门:使用 Azure PowerShell 运行 Resource Graph 查询
本快速入门介绍如何使用适用于 Azure PowerShell 的 Az.ResourceGraph
模块运行 Azure Resource Graph 查询。 该模块包含在最新版本的 Azure PowerShell 中,并为 Resource Graph 添加了 cmdlet。
本文还演示如何对查询结果进行排序和限定。 可以针对租户、管理组或订阅中的资源运行查询。
先决条件
- 如果没有 Azure 帐户,请在开始前创建一个试用帐户。
- 最新版本的 PowerShell 和 Azure PowerShell。
- Visual Studio Code。
安装此模块
如果安装了最新版本的 PowerShell 和 Azure PowerShell,则你已经拥有 Az.ResourceGraph
模块和所需的 PowerShellGet 版本。
可选模块安装
使用以下步骤安装 Az.ResourceGraph
模块,以便可以使用 Azure PowerShell 运行 Azure Resource Graph 查询。 Azure Resource Graph 模块需要 PowerShellGet 2.0.1 或更高版本。
验证 PowerShellGet 版本:
Get-Module -Name PowerShellGet
如果需要更新,请转到 PowerShellGet。
安装 模块:
Install-Module -Name Az.ResourceGraph -Repository PSGallery -Scope CurrentUser
该命令将模块安装在
CurrentUser
范围内。 如果需要在AllUsers
范围内安装,请从管理 PowerShell 会话运行安装。验证是否已安装模块:
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 资源,其中包含每个资源的 name
和 type
。 若要按管理组或订阅进行查询,请使用 -ManagementGroup
或 -Subscription
参数。
使用
Search-AzGraph
cmdlet 运行 Azure Resource Graph 查询:Search-AzGraph -Query 'Resources | project name, type | limit 5'
此查询示例不使用排序修饰符,如
order by
。 如果多次运行查询,每次请求可能会产生一组不同的资源。更新查询以
order by
name
属性:Search-AzGraph -Query 'Resources | project name, type | limit 5 | order by name asc'
与前一个查询一样,如果多次运行此查询,可能会为每个请求生成一组不同的资源。 查询命令的顺序非常重要。 在本例中,
order by
位于limit
之后。 查询将结果限制为五个资源,然后按名称对这些结果进行排序。更新查询以
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 环境并运行查询。 若要了解详细信息,请转到“查询语言详细信息”页面。