Ler em inglês

Compartilhar via


Início Rápido: Paginar os resultados da consulta do Resource Graph usando o Azure PowerShell

Este início rápido descreve como executar uma consulta do Azure Resource Graph e paginar a saída usando o Azure PowerShell. Por padrão, o Azure Resource Graph retorna um máximo de 1.000 registros para cada consulta. Você pode usar o parâmetro skipToken do cmdlet Search-AzGraph para ajustar quantos registros são retornados por solicitação.

Pré-requisitos

Instalar o módulo

Instale o módulo Az.ResourceGraph para que você possa usar o Azure PowerShell para executar as consultas do Azure Resource Graph. O módulo do Azure Resource Graph requer o PowerShellGet versão 2.0.1 ou superior. Se você instalou as versões mais recentes do PowerShell e do Azure PowerShell, você já tem a versão necessária.

  1. Verifique sua versão do PowerShellGet:

    Azure PowerShell
    Get-Module -Name PowerShellGet
    

    Se você precisar atualizar, vá para PowerShellGet.

  2. Instalar o módulo :

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

    O comando instala o módulo no escopo CurrentUser. Se precisar instalar no escopo AllUsers, execute a instalação em uma sessão administrativa do PowerShell.

  3. Verifique se o módulo foi instalado:

    Azure PowerShell
    Get-Command -Module Az.ResourceGraph -CommandType Cmdlet
    

    O comando exibe a versão do cmdlet Search-AzGraph e carrega o módulo em sua sessão do PowerShell.

Conectar-se ao Azure

Em uma sessão de terminal do Visual Studio Code, conecte-se ao Azure. Se você tiver mais de uma assinatura, execute os comandos para definir o contexto para sua assinatura. Substitua <subscriptionID> por sua ID da assinatura do Azure.

Azure PowerShell
Connect-AzAccount

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

Paginar os resultados da consulta do Resource Graph do Azure

Os exemplos executam uma consulta do Resource Graph baseada em locatário para listar as máquinas virtuais e, em seguida, atualizam o comando para retornar resultados que agrupam cinco registros para cada solicitação.

A mesma consulta é utilizada em cada exemplo:

Kusto
Resources |
join kind=leftouter (ResourceContainers | where type=='microsoft.resources/subscriptions' |
  project subscriptionName = name, subscriptionId)
  on subscriptionId |
where type =~ 'Microsoft.Compute/virtualMachines' |
project VMResourceId = id, subscriptionName, resourceGroup, name

O comando Search-AzGraph executa uma consulta que retorna uma lista de todas as máquinas virtuais em todas as assinaturas associadas a um determinado locatário do Azure:

Azure PowerShell
Search-AzGraph -Query "Resources | join kind=leftouter (ResourceContainers | where
type=='microsoft.resources/subscriptions' | project subscriptionName = name, subscriptionId) on
subscriptionId | where type =~ 'Microsoft.Compute/virtualMachines' | project VMResourceId = id,
subscriptionName, resourceGroup, name"

A próxima etapa atualiza o comando Search-AzGraph para retornar cinco registros para cada solicitação em lote. O comando usa um loop while, variáveis e o parâmetro skipToken.

Azure PowerShell
$kqlQuery = "Resources | join kind=leftouter (ResourceContainers | where
type=='microsoft.resources/subscriptions' | project subscriptionName = name, subscriptionId) on
subscriptionId | where type =~ 'Microsoft.Compute/virtualMachines' | project VMResourceId = id,
subscriptionName, resourceGroup, name"

$batchSize = 5
$skipResult = 0

[System.Collections.Generic.List[string]]$kqlResult

while ($true) {

  if ($skipResult -gt 0) {
    $graphResult = Search-AzGraph -Query $kqlQuery -First $batchSize -SkipToken $graphResult.SkipToken
  }
  else {
    $graphResult = Search-AzGraph -Query $kqlQuery -First $batchSize
  }

  $kqlResult += $graphResult.data

  if ($graphResult.data.Count -lt $batchSize) {
    break;
  }
  $skipResult += $skipResult + $batchSize
}

Limpar os recursos

Para remover o módulo Az.ResourceGraph da sua sessão do PowerShell, execute o comando a seguir:

Azure PowerShell
Remove-Module -Name Az.ResourceGraph

Para desinstalar o módulo Az.ResourceGraph do seu computador, execute o seguinte comando:

Azure PowerShell
Uninstall-Module -Name Az.ResourceGraph

Poderá ser exibida uma mensagem informando que módulo Az.ResourceGraph está sendo usado no momento. Nesse caso, você precisa encerrar sua sessão do PowerShell e iniciar uma nova sessão. Em seguida, execute o comando para desinstalar o módulo do seu computador.

Para sair da sua sessão do Azure PowerShell:

Azure PowerShell
Disconnect-AzAccount

Próximas etapas

Neste guia de início rápido, você aprendeu a paginar os resultados da consulta do Azure Resource Graph usando o Azure PowerShell. Para saber mais, consulte os artigos a seguir: