什麼是 Azure Resource Graph?

Azure Resource Graph 是 Azure 的服務,其設計訴求為延伸 Azure 資源管理,藉由提供有效且效能更佳的資源探索,讓您能夠在一組指定的訂閱之間大規模地查詢,以便有效地控管您的環境。 這些查詢提供下列功能:

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

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

注意

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

注意

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

Resource Graph 輔助 Azure Resource Manager 的方式

Azure Resource Manager 目前透過基本資源欄位支援查詢,特別是:

  • 資源名稱
  • 識別碼
  • 類型
  • 資源群組
  • 訂用帳戶
  • Location

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 範圍外被更新的情況下保持在最新狀態。

注意

針對各資源提供者最新的非預覽版應用程式開發介面 (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 Graph 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 總管為 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 連接器處於公開預覽狀態。

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

下一步