このクイックスタートでは、Azure PowerShell の Az.ResourceGraph モジュールを使用して Azure Resource Graph クエリを実行する方法について説明します。 このモジュールは最新バージョンの Azure PowerShell に含まれており、Resource Graph 用のコマンドレットが追加されています。
この記事では、クエリの結果を順序付け (並べ替え) て制限する方法についても説明します。 テナント、管理グループ、またはサブスクリプション内のリソースのクエリを実行できます。
前提条件
- 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コマンドレットのバージョンを表示し、モジュールを 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>
クエリの実行
モジュールが環境に追加されたら、テナント ベースのクエリを実行できます。 この例のクエリでは、各リソースの name と type を含む 5 つの Azure リソースが返されます。
管理グループまたはサブスクリプションでクエリするには、-ManagementGroup または -Subscription パラメーターを使用します。
Search-AzGraphコマンドレットを使用して 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がきます。 このクエリでは、結果が 5 つのリソースに制限され、これらが名前で順序付けられます。このクエリを更新して、
order byプロパティをnameしてから、出力を 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 コマンドレットの $PSDefaultParameterValues=@{"Search-AzGraph:Subscription"= $(Get-AzSubscription).ID} を設定します
リソースをクリーンアップする
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 モジュールを追加し、クエリを実行しました。 詳細については、クエリ言語の詳細ページを参照してください。