クイックスタート: Azure PowerShell を使用して Resource Graph クエリを実行します
このクイックスタートでは、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
のような並べ替え修飾子は使用されていません。 このクエリを複数回実行すると、要求ごとに得られる一連のリソースが異なる可能性があります。このクエリを更新して
name
プロパティをorder by
します。Search-AzGraph -Query 'Resources | project name, type | limit 5 | order by name asc'
前のクエリのように、このクエリを複数回実行すると、要求ごとに得られる一連のリソースが異なる可能性があります。 クエリ コマンドの順序が重要です。 この例では、
limit
の後にorder by
がきます。 このクエリでは、結果が 5 つのリソースに制限され、これらが名前で順序付けられます。このクエリを更新して、
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
を設定します
リソースをクリーンアップする
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 モジュールを追加し、クエリを実行しました。 詳細については、クエリ言語の詳細ページを参照してください。