クイックスタート: Azure PowerShell を使用して Resource Graph クエリを実行します

このクイックスタートでは、Azure PowerShell の Az.ResourceGraph モジュールを使用して Azure Resource Graph クエリを実行する方法について説明します。 この記事では、クエリの結果を順序付け (並べ替え) て制限する方法についても説明します。 テナント、管理グループ、またはサブスクリプション内のリソースのクエリを実行できます。 終了したら、モジュールを削除できます。

前提条件

モジュールをインストールする

Azure PowerShell を使用して Azure Resource Graph クエリを実行できるように、Az.ResourceGraph モジュールをインストールします。 Azure Resource Graph モジュールには、PowerShellGet バージョン 2.0.1 以降が必要です。 最新バージョンの PowerShell と Azure PowerShell をインストールした場合は、必要なバージョンが既にあります。

  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 コマンドレットのバージョンを表示し、モジュールを 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>

クエリの実行

モジュールが環境に追加されたら、テナント ベースのクエリを実行できます。 この例のクエリでは、各リソースの nametype を含む 5 つの Azure リソースが返されます。 管理グループまたはサブスクリプションでクエリするには、-ManagementGroup または -Subscription パラメーターを使用します。

  1. Search-AzGraph コマンドレットを使用して Azure Resource Graph クエリを実行します。

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

    このクエリの例では、order by のような並べ替え修飾子は使用されていません。 このクエリを複数回実行すると、要求ごとに得られる一連のリソースが異なる可能性があります。

  2. このクエリを更新して name プロパティを order by します。

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

    前のクエリのように、このクエリを複数回実行すると、要求ごとに得られる一連のリソースが異なる可能性があります。 クエリ コマンドの順序が重要です。 この例では、limit の後に order by がきます。 このクエリでは、結果が 5 つのリソースに制限され、これらが名前で順序付けられます。

  3. このクエリを更新して、name プロパティを order by してから、出力を 5 件の結果に limit します。

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

    環境が変更されない状態でこのクエリを複数回実行した場合、結果は変わらず、name プロパティで並べ替えられますが、引き続き 5 件の結果に制限されます。 このクエリでは、結果が名前で順序付けられ、出力が 5 件のリリースに制限されます。

既にアクセスできているサブスクリプションからクエリの結果が返されなかった場合、Search-AzGraph コマンドレットでは既定コンテキストのサブスクリプションが既定で使用されることに注意してください。 既定のコンテキストの一部であるサブスクリプション ID のリストを表示するには、この (Get-AzContext).Account.ExtendedProperties.Subscriptions を実行します。アクセスできるすべてのサブスクリプション全体を検索する場合は、$PSDefaultParameterValues=@{"Search-AzGraph:Subscription"= $(Get-AzSubscription).ID} を実行して Search-AzGraph コマンドレットの PSDefaultParameterValues を設定します

リソースをクリーンアップする

PowerShell セッションから Az.ResourceGraph モジュールを削除するには、次のコマンドを実行します。

Remove-Module -Name Az.ResourceGraph

コンピューターから Az.ResourceGraph モジュールをアンインストールするには、次のコマンドを実行します。

Uninstall-Module -Name Az.ResourceGraph

モジュール Az.ResourceGraph が現在使用されていることを示すメッセージが表示されることがあります。 その場合は、PowerShell セッションをシャットダウンし、新しいセッションを開始する必要があります。 次にコンピューターからモジュールをアンインストールするコマンドを実行します。

Azure PowerShell セッションからサインアウトするには:

Disconnect-AzAccount

次のステップ

このクイックスタートでは、Azure PowerShell 環境に Resource Graph モジュールを追加し、クエリを実行しました。 詳細については、クエリ言語の詳細ページを参照してください。