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

REST API で Azure Resource Graph を使用するには、まず使用可能な REST API を呼び出すツールがあることを確認します。 このクイックスタートでは、その後の、クエリを実行して、Azure Resource Graph REST API エンドポイントを呼び出して結果を取得するプロセスを説明します。

このプロセスを完了すると、REST API エンドポイントを呼び出すツールがあり、ご自分の初めての Resource Graph クエリを実行できるようになります。

前提条件

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。

Azure Cloud Shell

Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。

Azure Cloud Shell を開始するには、以下のようにします。

オプション 例とリンク
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 Screenshot that shows an example of Try It for Azure Cloud Shell.
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 Button to launch Azure Cloud Shell.
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 Screenshot that shows the Cloud Shell button in the Azure portal

Azure Cloud Shell を使用するには、以下のようにします。

  1. Cloud Shell を開始します。

  2. コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。

  3. Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。

  4. Enter キーを選択して、コードまたはコマンドを実行します。

REST API で作業を開始する

REST API に慣れていない場合は、最初に「Azure REST API Reference」(Azure REST API リファレンス) を読んで、REST API の基本を理解してください (具体的には要求 URI と要求の本文)。 この記事では、これらの概念を使用して Azure Resource Graph を操作する方法を説明しており、それらの実践的な知識があることを前提としています。 ARMClient などのツールは認可を自動的に処理できるので、初めての方にお勧めします。

Azure Resource Graph の仕様については、Azure Resource Graph REST API に関するページを参照してください。

REST API と PowerShell

REST API の呼び出しを行うためのツールがまだない場合は、PowerShell を使うことを検討してください。 次のコード サンプルでは、Azure で認証を行うためのヘッダーを取得します。 認証ヘッダー (ベアラー トークンと呼ばれることもあります) を生成し、パラメーターまたは要求本文で接続する REST API の URI を提供します。

# Log in first with Connect-AzAccount if not using Cloud Shell

$azContext = Get-AzContext
$azProfile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile
$profileClient = New-Object -TypeName Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient -ArgumentList ($azProfile)
$token = $profileClient.AcquireAccessToken($azContext.Subscription.TenantId)
$authHeader = @{
    'Content-Type'='application/json'
    'Authorization'='Bearer ' + $token.AccessToken
}

# Invoke the REST API
$restUri = "https://management.azure.com/subscriptions/$($azContext.Subscription.Id)?api-version=2020-01-01"
$response = Invoke-RestMethod -Uri $restUri -Method Get -Headers $authHeader

$response 変数には Invoke-RestMethod コマンドレットの結果が保持されており、ConvertFrom-json などのコマンドレットを使用して解析できます。 REST API サービス エンドポイントで要求本文が必要な場合は、JSON 形式の変数を Invoke-RestMethod-Body パラメーターに提供します。

最初の Resource Graph クエリを実行する

ご自分の選択した環境に REST API ツールが追加されたので、簡単なサブスクリプション ベースの Resource Graph クエリを試してみましょう。 このクエリでは、各リソースの名前リソースの種類を使用して、最初の 5 つの Azure リソースが返されます。 管理グループでクエリを実行する場合、subscriptions ではなく managementgroups を使用します。 テナント全体に対してクエリを実行するには、要求本文から managementgroupssubscriptions プロパティの両方を省略します。

各 REST API 呼び出しの要求本文には、自分固有の値に置き換える必要がある変数が使用されています。

  • {subscriptionID} - サブスクリプション ID で置き換えます
  1. REST API と resources エンドポイントを使用して、ご自分の初めての Azure Resource Graph クエリを実行します。

    • REST API URI

      POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2021-03-01
      
    • 要求本文

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

    Note

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

  2. resouces エンドポイントへの呼び出しを更新し、Name プロパティで並べ替えられる (order by) ようにクエリを変更します。

    • REST API URI

      POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2021-03-01
      
    • 要求本文

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

    Note

    最初のクエリと同様に、このクエリを複数回実行すると要求あたり異なる一連のリソースを中断する可能性があります。 クエリ コマンドの順序が重要です。 この例では、limit の後に order by がきます。 このコマンドの順序によって、まずクエリ結果が制限され、次にその結果が並べ替えられます。

  3. resources への呼び出しを更新し、最初にクエリを Name プロパティで並べ替え (order by)、次に上位 5 件の結果に制限 (limit) するようにクエリを変更します。

    • REST API URI

      POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2021-03-01
      
    • 要求本文

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

最後のクエリを複数回実行した場合、環境内で何も変更がないと仮定すると、返される結果は変わらず、Name プロパティで並べ替えられますが、引き続き上位 5 件の結果に制限されます。

Azure Resource Graph に対する REST API 呼び出しの追加の例については、Azure Resource Graph の REST の例に関するページを参照してください。

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

REST API では、ライブラリまたはモジュールをアンインストールする必要がありません。 ARMClient などのツールをインストールして呼び出しを行い、不要になった場合は、今すぐツールをアンインストールできます。

次のステップ

このクイックスタートでは、Resource Graph REST API エンドポイントを呼び出し、ご自分のクエリを初めて実行しました。 Resource Graph 言語の詳細については、クエリ言語の詳細ページに進んでください。