このクイックスタートでは、Azure PowerShell を使用して Azure Resource Graph クエリを実行し、出力の改ページ位置を自動修正する方法について説明します。 既定では、Azure Resource Graph からクエリごとに最大 1,000 個のレコードが返されます。 Search-AzGraph
コマンドレットの skipToken
パラメータを使用すると、要求ごとに返されるレコードの件数を調整できます。
前提条件
- Azure アカウントをお持ちでない場合は、開始する前に無料アカウントを作成してください。
- PowerShell。
- Azure PowerShell。
- Visual Studio Code。
モジュールをインストールする
Azure PowerShell を使用して Azure Resource Graph クエリを実行できるように、Az.ResourceGraph
モジュールをインストールします。 Azure Resource Graph モジュールには、PowerShellGet バージョン 2.0.1 以降が必要です。 最新バージョンの PowerShell と Azure PowerShell をインストールした場合は、必要なバージョンが既にあります。
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
コマンドレットのバージョンを表示し、モジュールを PowerShell セッションに読み込みます。
Azure に接続する
Visual Studio Code ターミナル セッションから Azure に接続します。 複数のサブスクリプションがある場合は、コマンドを実行してコンテキストをサブスクリプションに設定します。 <subscriptionID>
は、Azure サブスクリプション ID に置き換えてください。
Connect-AzAccount
# Run these commands if you have multiple subscriptions
Get-AzSubScription
Set-AzContext -Subscription <subscriptionID>
Azure Resource Graph クエリ結果の改ページ位置を自動修正する
この例では、テナントベースの Resource Graph クエリを実行して仮想マシンのリストを返してから、コマンドを更新して、要求ごとに 5 つのレコードをバッチ処理する結果を返します。
例ごとに同じクエリが使用されます。
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
Search-AzGraph
コマンドは、特定の Azure テナントに関連付けられているすべてのサブスクリプションを対象に、すべての仮想マシンのリストを返すクエリを実行します。
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"
次の手順では、Search-AzGraph
コマンドを更新して、バッチ要求ごとに 5 つのレコードを返します。 このコマンドは、while
ループ、変数、skipToken
パラメータを使用します。
$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
}
リソースをクリーンアップする
PowerShell セッションから Az.ResourceGraph
モジュールを削除するには、次のコマンドを実行します。
Remove-Module -Name Az.ResourceGraph
コンピューターから Az.ResourceGraph
モジュールをアンインストールするには、次のコマンドを実行します。
Uninstall-Module -Name Az.ResourceGraph
モジュール Az.ResourceGraph が現在使用されていることを示すメッセージが表示されることがあります。 その場合は、PowerShell セッションをシャットダウンし、新しいセッションを開始する必要があります。 次にコンピューターからモジュールをアンインストールするコマンドを実行します。
Azure PowerShell セッションからサインアウトするには:
Disconnect-AzAccount
次のステップ
このクイックスタートでは、Azure PowerShell を使用して Azure Resource Graph クエリ結果の改ページ位置を自動修正する方法について説明しました。 詳細については、以下の記事を参照してください。