クイックスタート: 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 アカウントをお持ちでない場合は、開始する前に無料アカウントを作成してください。
- 最新バージョンの PowerShell または Git Bash などの Bash シェル。
- Azure CLI の最新バージョン。
- Visual Studio Code。
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
を使用します。 テナント全体に対してクエリを実行するには、要求本文から managementGroups
と subscriptions
プロパティの両方を省略します。
次の例は、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 リソースを、各リソースの name
と resource 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 言語の詳細については、クエリ言語の詳細ページに進んでください。