快速入门:使用 Azure PowerShell 创建 Resource Graph 共享查询

在本快速入门中,使用 Az.ResourceGraph Azure PowerShell 模块创建一个 Azure Resource Graph 共享查询。 该模块包含在最新版本的 Azure PowerShell 中,并为 Resource Graph 添加了 cmdlet

可以使用实验性功能的命令从 Azure CLI 运行共享查询,也可以从 Azure 门户运行共享查询。 共享查询是一个 Azure 资源管理器对象,你可授予该对象权限或在 Azure Resource Graph Explorer 中运行该对象。 完成后,可以删除 Resource Graph 扩展。

先决条件

安装此模块

如果安装了最新版本的 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 资源管理器对象,你可授予该对象权限或在 Azure Resource Graph Explorer 中运行该对象。 该查询汇总了按“位置”分组的所有资源。

  1. 创建用于存储 Azure Resource Graph 共享查询的资源组。

    New-AzResourceGroup -Name demoSharedQuery -Location chinaeast2
    
  2. 创建 Azure Resource Graph 共享查询。

    $params = @{
      Name = 'Summarize resources by location'
      ResourceGroupName = 'demoSharedQuery'
      Location = 'chinaeast2'
      Description = 'This shared query summarizes resources by location for a pinnable map graphic.'
      Query = 'Resources | summarize count() by location'
    }
    
    New-AzResourceGraphQuery @params
    

    $params 变量使用 PowerShell splatting 来提高命令中使用的参数值的可读性,以创建共享查询。

  3. 在资源组中列出所有共享查询。

    Get-AzResourceGraphQuery -ResourceGroupName demoSharedQuery
    
  4. 将结果限制为特定的共享查询。

    Get-AzResourceGraphQuery -ResourceGroupName demoSharedQuery -Name 'Summarize resources by location'
    

运行共享查询

可以使用 Azure Resource Graph 资源管理器验证共享查询是否正常工作。 若要更改范围,请使用页面左侧的“范围”菜单。

  1. 登录到 Azure 门户
  2. 在页面顶部的搜索字段中输入 Resource Graph。
  3. 选择“Resource Graph 资源管理器”。
  4. 选择“打开查询”。
  5. 将“类型”更改为“共享查询”。
  6. 选择“按 OS 对 VM 计数”查询。
  7. 在“结果”选项卡中选择“运行查询”和“查看输出”。
  8. 选择“图表”,然后选择“地图”以查看位置地图。

还可以从资源组运行查询。

  1. 在 Azure 中,转到资源组 demoSharedQuery。
  2. 在“概述 ”选项卡中,选择“按 OS 对 VM 计数”查询。
  3. 选择“结果”选项卡以查看列表。
  4. 选择“图表”,然后选择“地图”以查看位置地图。

清理资源

完成时,可以从 Azure 环境中删除 Resource Graph 共享查询和资源组。 删除某个资源组后,将删除该资源组及其所有资源。

删除共享查询:

Remove-AzResourceGraphQuery -ResourceGroupName demoSharedQuery -Name 'Summarize resources by location'

删除资源组:

Remove-AzResourceGroup -Name demoSharedQuery

若要退出登录 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 会话并启动新会话。 然后运行命令,从计算机中卸载模块。

后续步骤

在本快速入门中,你使用 Azure PowerShell 创建了一个 Resource Graph 共享查询。 若要详细了解 Resource Graph 语言,请继续阅读查询语言详细信息页。