什麼是 Azure Resource Graph?

Azure Resource Graph 是一項 Azure 服務,旨在藉由提供有效率且高效能的資源探索來擴充 Azure 資源管理。 Resource Graph 可在一組指定的訂用帳戶中大規模查詢,以便有效率地控管您的環境。 這些查詢提供下列功能:

  • 透過複雜篩選、分組、依資源屬性排序來查詢資源。
  • 根據控管需求反覆探索資源。
  • 評估在廣大雲端環境中套用原則的效果。
  • 查詢對資源屬性所做的變更

在本文件中,您會詳盡地檢閱每項功能。

注意

Azure Resource Graph 支援 Azure 入口網站的搜尋列、全新的所有資源瀏覽體驗,以及 Azure 原則的變更記錄視覺差異。 其目的是協助客戶管理大規模的環境。

注意

此服務支援 Azure Lighthouse,可讓服務提供者登入其本身的租用戶,以管理客戶所委派的訂用帳戶和資源群組。

Resource Graph 輔助 Azure Resource Manager 的方式

Azure Resource Manager 目前支援針對基本資源欄位進行查詢,具體包括:

  • 資源名稱
  • ID
  • 類型
  • 資源群組
  • 訂用帳戶
  • 位置

Azure Resource Manager 也提供呼叫個別資源提供者的功能,可一次取得一個資源的詳細屬性。

使用 Azure Resource Graph,您可以存取這些由資源提供者傳回的屬性,而無須對每個資源提供者進行個別呼叫。 如需支援的資源類型清單,請參閱資料表和資源類型參考。 另一種查看所支援資源類型的方法是透過 Azure Resource Graph Explorer 結構描述瀏覽器

透過 Azure Resource Graph,您可以:

  • 存取由資源提供者傳回的屬性,而無須對每個資源提供者進行個別呼叫。
  • 檢視過去 14 天的資源設定變更,來查看已變更哪些屬性及何時變更。

注意

作為預覽功能,某些 type 物件會有額外的非 Resource Manager 屬性可用。 如需詳細資訊,請參閱擴充屬性

Resource Graph 如何維持最新狀態

更新 Azure 資源時,Resource Manager 會通知 Azure Resource Graph 變更了什麼。 Azure Resource Graph 接著會更新其資料庫。 Azure Resource Graph 也會執行定期的「完整掃描」。 如果有遺漏的通知,此掃描可確保 Azure Resource Graph 資料是最新的。 或當資源在 Azure Resource Manager 外部更新時。

Important

Azure Resource Graph 的資料並不非常一致。 資料以短延遲進行索引。 欲了解更多關於管理最終一致性的資訊與指引,請參閱「選擇 Azure Resource Graph 的正確查詢策略」。

注意

針對各資源提供者最新的非預覽版應用程式開發介面 (API),Resource Graph 會使用 GET 來收集屬性和值。 因此,預期的屬性可能無法使用。 在某些情況下,所使用的 API 版本會遭到覆寫,以在結果中提供更新或更廣泛使用的屬性。 請參閱顯示每個資源類型的 API 版本範例,了解您環境中的完整清單。

查詢語言

現在您已更加了解 Azure Resource Graph,讓我們繼續深入了解如何建構查詢。

請務必了解,Azure Resource Graph 的查詢語言以 Azure 資料總管所用的 Kusto 查詢語言 (KQL) 為基礎。

首先,如需可搭配 Azure Resource Graph 使用的作業及函式詳細資料,請參閱 Resource Graph 查詢語言。 若要瀏覽資源,請參閱探索資源

Azure Resource Graph 中的權限

若要使用 Resource Graph,您必須先透過 Azure 角色型存取控制 (Azure RBAC) 獲得適當授權,至少取得您欲查詢資源的 read 權限。 如果連 Azure 物件或物件群組的 read 權限都不具備,則不會傳回任何結果。

注意

Resource Graph 會在登入期間,使用主體可用的訂用帳戶。 若要查看在使用中工作階段期間新增之訂用帳戶的資源,主體必須重新整理脈絡。 若登出後再登入,則此動作會自動執行。

Azure CLI 和 Azure PowerShell 會使用使用者可存取的訂用帳戶。 當您使用 REST API 時,訂用帳戶清單由使用者提供。 如果使用者可存取清單中的任何訂用帳戶,則系統會傳回使用者可存取訂用帳戶的查詢結果。 此行為與呼叫 資源群組 - 列出 時相同,因為您取得的是您可存取的資源群組,而且不會有任何跡象顯示結果可能只是部分結果。 如果使用者具有適當權限的訂用帳戶清單中沒有任何訂用帳戶,則回應為 403 (禁止)。

注意

預覽 REST API 版本 2020-04-01-preview 中,可能會省略訂用帳戶清單的步驟。 當 subscriptionsmanagementGroupId 屬性未在要求中定義時,「範圍」 會設定為租用戶。 如需詳細資訊,請參閱查詢範圍

節流

由於 Resource Graph 是一項免費服務,對其查詢會受到節流限制,以便為所有客戶提供最佳的使用體驗和回應時間。 如果您的組織想要使用 Resource 圖形 API 執行大規模且頻繁的查詢,請使用 Resource Graph 入口網站頁面中的 意見反應。 請提供您的商務案例,並選取 [Microsoft 可傳送有關此意見反應的電子郵件給我] 核取方塊,以便支援小組與您連絡。

Resource Graph 會在使用者層級進行查詢的節流處理。 服務回應會包含下列 HTTP 標頭:

  • x-ms-user-quota-remaining (int):使用者的剩餘資源配額。 此值會對應至查詢計數。
  • x-ms-user-quota-resets-after (hh:mm:ss):使用者配額耗用量重設之前的剩餘時間長度

如需詳細資訊,請參閱關於受節流限制要求的指引

執行您的第一個查詢

Azure Resource Graph Explorer 是 Azure 入口網站的一部分,可讓您直接在 Azure 入口網站中執行 Resource Graph 查詢。 將結果釘選為動態圖表,可對入口網站工作流程提供即時的動態資訊。 如需詳細資訊,請參閱使用 Azure Resource Graph Explorer 執行第一個查詢

Resource Graph 也支援 Azure CLI、Azure PowerShell 和 REST API。 這兩種語言的查詢結構相同。 了解如何使用下列項目來啟用 Resource Graph:

警示與 Log Analytics 整合

注意

Azure Resource Graph 警示與 Log Analytics 整合處於公開預覽狀態。

您可以使用 Azure Resources Graph 查詢或透過 Azure 監視器整合 Log Analytics 與 Azure Resources Graph 查詢,來建立警示規則。 這兩種方法都可以用來建立 Azure 資源的警示。 如需範例,請移至快速入門:使用 Azure Resource Graph 和 Log Analytics 建立警示

使用 Power BI 連接器執行查詢

Azure Resource Graph Power BI 連接器會在租用戶層級執行查詢,但您可以將範圍變更為訂用帳戶或管理群組。 如果您的查詢結果超過 1,000 筆記錄,Power BI 連接器有選擇性設定可傳回所有記錄。 如需詳細資訊,請移至快速入門:使用 Azure Resource Graph 的 Power BI 連接器執行查詢

下一步