Share via


快速入門:使用 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 Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell,與 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 入口網站右上方功能表列上的 [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 參考 以取得 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變數會保存 Cmdlet 的結果Invoke-RestMethod,而 Cmdlet 可以使用 ConvertFrom-JsonCmdlet 進行剖析。 如果 REST API 服務端點預期 要求本文,請將 JSON 格式化的變數 -Body 提供給 的 Invoke-RestMethod參數。

執行第一個 Resource Graph 查詢

將 REST API 工具新增至您選擇的環境後,即可試用以訂用帳戶為基礎的簡單 Resource Graph 查詢。 查詢會傳回前五個 Azure 資源,以及每個資源的名稱資源類型。 若要依 管理群組查詢,請使用 managementgroups 而非 subscriptions。 若要查詢整個租使用者,請省略要求本文中的 managementgroupssubscriptions 屬性。

在每個 REST API 呼叫的要求本文中,有一個變數,您必須將 它取代為您自己的值:

  • {subscriptionID} - 以您的訂用帳戶識別碼取代
  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"
      }
      

    注意

    由於此查詢範例並未提供排序修飾詞 (例如 order by),因此執行此查詢多次將可能會對每個要求產生一組不同的資源。

  2. 更新對端點的呼叫,resouces並將查詢變更order byName 屬性:

    • 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"
      }
      

    注意

    如同第一個查詢一樣,多次執行此查詢可能會為每個要求產生不同的資源集。 查詢命令的順序很重要。 在此範例中,order by 會出現在 limit 之後。 此命令順序會先限制查詢結果,然後再加以排序。

  3. 更新對端點的resources呼叫,並將查詢變更為第一個 order by Name 屬性,然後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"
      }
      

執行最終查詢數次後,假設您的環境中未變更任何內容,傳回的結果將會一致,且依名稱屬性排序,但仍限制為只顯示前五個結果。

如需 Azure Resource Graph 的 REST API 呼叫更多範例,請參閱 Azure Resource Graph REST 範例

清除資源

REST API 沒有要卸載的連結庫或模組。 如果您已安裝 ARMClient 之類的工具進行呼叫,而不再需要它,您現在可以卸載此工具。

下一步

在本快速入門中,您已呼叫 Resource Graph REST API 端點,並執行您的第一個查詢。 若要深入了解 Resource Graph 語言,請繼續前往查詢語言詳細資料頁面。