次の方法で共有


クイックスタート: REST API を使用して Resource Graph クエリを実行する

このクイックスタートでは、REST API を使用して Azure Resource Graph クエリを実行し、結果を表示する方法について説明します。 REST API 要素は、API バージョンとクエリを含む要求本文が含まれた URI です。 以下の例では、Azure CLI を使用して Azure にサインインし、アカウントを認証して az rest コマンドを実行します。

REST API に慣れていない場合は、最初に「Azure REST API Reference」(Azure REST API リファレンス) を読んで、REST API の基本を理解してください (具体的には要求 URI と要求の本文)。 Azure Resource Graph の仕様については、「Azure Resource Graph REST API」を参照してください。

前提条件

Azure に接続する

Visual Studio Code ターミナル セッションから Azure に接続します。 複数のサブスクリプションがある場合は、コマンドを実行してコンテキストをサブスクリプションに設定します。 {subscriptionID} は、Azure サブスクリプション ID に置き換えてください。

az login

# Run these commands if you have multiple subscriptions
az account list --output table
az account set --subscription {subscriptionID}

これらの例では Azure CLI az rest コマンドを使用しているので、PowerShell を使っていたとしても az login を使用します。

REST API 構文の確認

REST API コマンドを実行するには、REST API URI と要求本文の 2 つの要素があります。 詳細については、「リソース」を参照してください。 管理グループでクエリを実行する場合、subscriptions ではなく managementGroups を使用します。 テナント全体に対してクエリを実行するには、要求本文から managementGroupssubscriptions プロパティの両方を省略します。

次の例は、Azure サブスクリプションのクエリを実行するための REST API URI 構文を示しています。

POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2022-10-01

要求本文は REST API を使用してクエリを実行するために必要です。 次の例は、要求本文ファイルを作成する JSON です。

{
  "subscriptions": [
    "{subscriptionID}"
  ],
  "query": "Resources | project name, type | limit 5"
}

Resource Graph クエリを実行する

以下の例では同じ az rest コマンドを使用しますが、要求本文を変更することで異なる結果が得られます。 以下の例では、リソースの一覧表示、name プロパティによるリソースの並べ替え、name プロパティによるリソースの並べ替えと結果の数の制限を行います。

すべてのクエリ例を実行するには、シェル環境で以下の az rest コマンドを使用します。

az rest --method post --uri https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2022-10-01 --body `@request-body.json

PowerShell では、要求本文のファイル名を指定するために at sign (@) をエスケープするためのバッククォート (`) が必要です。

各要求本文の例で、{subscriptionID} を実際の Azure サブスクリプション ID に置き換えます。 次のコマンドを実行して、要求本文の Azure サブスクリプション ID を取得します。

az account show --query id --output tsv

List resources

Visual Studio Code で、request-body.json という名前の新しいファイルを作成します。 次の JSON をコピーしてファイルに貼り付け、そのファイルを保存します。

このクエリは 5 つの Azure リソースを、各リソースの nameresource type と共に返します。

{
  "subscriptions": [
    "{subscriptionID}"
  ],
  "query": "Resources | project name, type | limit 5"
}

このクエリ例では、order by などの並べ替え修飾子を指定していないため、このクエリを複数回実行すると、要求ごとに異なるリソースのセットが得られます。

name プロパティによって並べ替える

name プロパティによる order by を行うようにクエリを変更する次のコードで request-body.json を更新します。 ファイルを保存し、az rest コマンドを使用してクエリを実行します。

{
  "subscriptions": [
    "{subscriptionID}"
  ],
  "query": "Resources | project name, type | limit 5 | order by name asc"
}

このクエリを複数回実行すると、要求ごとに異なるリソースのセットが得られます。

クエリ コマンドの順序が重要です。 この例では、limit の後に order by がきます。 このコマンドの順序により、クエリ結果が 5 つのリソースに制限された後にそれらが並べ替えられるようになります。

name プロパティによって並べ替えて結果を制限する

name プロパティによる order by を行った後に 5 つの結果への limit を行う次のコードで request-body.json を更新します。 ファイルを保存し、同じ az rest コマンドを使用してクエリを実行します。

{
  "subscriptions": [
    "{subscriptionID}"
  ],
  "query": "Resources | project name, type | order by name asc | limit 5"
}

このクエリを複数回実行した場合、環境内で何も変更がないと仮定すると、返される結果は変化せず、name プロパティによって並べ替えられますが、上位 5 個の結果に制限されます。

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

Azure CLI セッションからサインアウトします。

az logout

次のステップ

このクイックスタートでは、Azure Resource Graph REST API エンドポイントを使用してクエリを実行しました。 Resource Graph 言語の詳細については、クエリ言語の詳細ページに進んでください。