什麼是 Azure Resource Manager?

Azure Resource Manager 是 Azure 的部署與管理服務。 其提供一個管理層,讓您能夠在 Azure 帳戶中建立、更新及刪除資源。 您可使用存取控制、鎖定與標籤等管理功能,在部署之後保護及組織資源。

若要了解 Azure Resource Manager 範本 (ARM 範本),請參閱 ARM 範本概觀。 若要了解 Bicep,請參閱 Bicep 概觀

下列影片涵蓋 Azure Resource Manager 的基本概念。

一致管理層

當您透過任何 Azure API、工具或 SDK 傳送要求時,Resource Manager 就會收到要求。 它會先驗證並授權要求,再將其轉送至適當的 Azure 服務。 因為所有要求都是透過相同的 API 來處理,所以您會在所有不同工具中看到一致的結果和功能。

下圖顯示處理 Azure 要求時,Azure Resource Manager 所扮演的角色。

Diagram that shows the role of Azure Resource Manager in handling Azure requests.

入口網站中的所有可用功能也都可透過 PowerShell、Azure CLI、REST API 和用戶端 SDK 來存取。 一開始透過 API 發行的功能將會在初次發行的 180 天內呈現在入口網站中。

重要

在 2023 年秋季之前,Azure Resource Manager 都僅支援傳輸層安全性 (TLS) 1.2 或更新版本。 如需詳細資訊,請參閱移轉至適用於 Azure Resource Manager 的 TLS 1.2

詞彙

如果您不熟悉 Azure Resource Manager,則您可能不熟悉一些詞彙。

  • 資源 - 透過 Azure 提供的可管理項目。 虛擬機器、儲存體帳戶、Web 應用程式、資料庫和虛擬網路都是資源範例。 資源群組、訂用帳戶、管理群組和標記也是資源範例。
  • 資源群組 - 持有應用程式相關資源的容器。 資源群組包含您想要以群組形式管理的資源。 您可以根據最適合您組織的方式,決定哪些資源屬於資源群組。 請參閱什麼是資源群組?
  • 資源提供者 - 提供 Azure 資源的服務。 例如,Microsoft.Compute 是常見的資源提供者,可提供虛擬機器資源。 Microsoft.Storage 是另一個常見的資源提供者。 請參閱資源提供者和類型
  • 宣告式語法–可讓您陳述「以下是我想要建立的項目」而不需要寫入一連串程式設計命令來加以建立的語法。 ARM 範本和 Bicep 檔案是宣告式語法的範例。 在這些檔案中,您可以定義要部署至 Azure 的基礎結構的屬性。
  • ARM 範本–JavaScript 物件標記法 (JSON) 檔案,可定義一或多個要部署至資源群組、訂用帳戶、管理群組或租用戶的資源。 範本可用於一致並且重複地部署資源。 請參閱範本部署概觀
  • Bicep 檔案–用來以宣告方式部署 Azure 資源的檔案。 Bicep 是設計用來為 Azure 中的基礎結構即程式碼解決方案提供最佳製作體驗的語言。 請參閱 Bicep 概觀
  • 擴充資源 - 會新增至另一個資源功能中的資源。 例如,角色指派就是擴充資源。 您可以將角色指派套用至任何其他資源以指定存取權。 請參閱擴充資源

如需更多 Azure 詞彙定義,請參閱 Azure 基本概念

使用 Resource Manager 的優勢

有了 Azure Resource Manager,您可以:

  • 透過宣告式範本而不是指令碼來管理基礎結構。

  • 以群組形式部署、管理及監視您解決方案的所有資源,而非個別處理這些資源。

  • 在整個開發週期上重新部署方案,並確信您的資源會部署在一致的狀態中。

  • 定義資源之間的相依性,使這些資源以正確順序進行部署。

  • 因為 Azure 角色型存取控制 (Azure RBAC) 會原生整合至管理平台,請將存取控制套用至所有服務。

  • 將標籤套用至資源,以便以邏輯方式組織您訂用帳戶中的所有資源。

  • 檢視共用相同標籤之資源群組的成本,以釐清您的組織的計費方式。

了解範圍

Azure 提供四個管理範圍層級:管理群組、訂用帳戶、資源群組和資源。 下圖顯示這些層級的範例。

Diagram that illustrates the four levels of scope in Azure: management groups, subscriptions, resource groups, and resources.

您會在這些範圍的層級中套用管理設定。 您所選層級會判斷套用設定的範圍。 較低層級會繼承較高層級中的設定。 例如,當您將原則套用到訂用帳戶時,訂用帳戶中的所有資源群組和資源都會套用該原則。 當在資源群組上套用原則時,會將該原則套用至資源群組及其所有資源。 然而,另一個資源群組沒有該原則指派。

如需管理身分識別與存取的資訊,請參閱 Microsoft Entra ID

您可將範本部署至租用戶、管理群組、訂用帳戶或資源群組。

什麼是資源群組?

資源群組是一種容器,可讓您管理 Azure 解決方案的相關資源。 藉由使用資源群組,您可以協調相關資源的變更。 例如,您可以將更新部署至資源群組,並確信資源會透過協調作業進行更新。 或者,在您完成解決方案時,可以刪除資源群組,並知道所有資源都已刪除。

定義資源群組時,必須考慮一些重要因素:

  • 資源群組中的所有資源應該共用相同的生命週期。 您可一起部署、更新和刪除它們。 如果類似伺服器這樣的資源必須存在於不同的部署週期,該資源應該位於另一個資源群組中。

  • 每個資源只能存在於一個資源群組中。

  • 您可以隨時在資源群組中新增或移除資源。

  • 您可以將資源從一個資源群組移動到另一個群組。 如需詳細資訊,請參閱 將資源移動到新的資源群組或訂用帳戶

  • 資源群組中的資源可位於與資源群組不同的區域中。

  • 建立資源群組時,您需要提供該資源群組的位置。

    您可能會想:「為什麼資源群組需要位置? 而且,如果資源可以有不同於資源群組的位置,為什麼資源群組位置這麼重要?」

    資源群組會儲存資源相關中繼資料。 當您指定資源群組的位置時,您便是指定中繼資料的儲存位置。 基於合規性,您可能需要確保資料存放在特定區域中。

    為確保資源群組的狀態一致性,所有控制平面作業都會透過資源群組的位置進行路由傳送。 選取資源群組位置時,建議您選取靠近控制作業來源的位置。 一般而言,這個位置會最接近您目前的位置。 此路由需求僅適用於資源群組的控制平面作業。 並不會影響傳送至應用程式的要求。

    如果資源群組的區域暫時無法使用,您就無法更新資源群組中的資源,因為中繼資料無法使用。 其他區域中的資源仍可如預期般運作,但您可能無法加以更新。 此情況也適用於全域資源,例如 Azure DNS、Azure DNS 私人區域、Azure 流量管理員和 Azure Front Door。 您可以透過 Azure Resource Graph 資源表格的類型清單,檢視哪些類型是由 Azure Resource Manager 管理其中繼資料。

    如需如何建置可靠應用程式的詳細資訊,請參閱設計可靠的 Azure 應用程式

  • 資源群組可以用來設定系統管理動作的存取控制範圍。 若要管理資源群組,您可以指派 Azure 原則Azure 角色資源鎖定

  • 您可套用標籤至資源群組。 資源群組中的資源不會繼承這些標記。

  • 資源可連線至其他資源群組中的資源。 當這兩個資源相關,但不共用相同的生命週期時,此案例很常見。 例如:您可讓 Web 應用程式連線至不同資源群組中的資料庫。

  • 當您刪除資源群組時,也會一併刪除資源群組中的所有資源。 如需 Azure Resource Manager 如何協調這些刪除作業的詳細資訊,請參閱 Azure Resource Manager 資源群組和資源刪除

  • 您可以在每個資源群組中最多部署某個資源類型的 800 個執行個體。 有些資源類型免除 800 個執行個體的限制。 如需詳細資訊,請參閱資源群組限制

  • 有些資源可存在於資源群組外部。 這些資源會部署至訂用帳戶管理群組租用戶。 這些範圍僅支援特定的資源類型。

  • 若要建立資源群組,您可以使用入口網站PowerShellAzure CLIARM 範本

Azure Resource Manager 的復原

Azure Resource Manager 服務專門設計來提供復原和持續可用性。 REST API 中的 Resource Manager 和控制平面作業 (傳送至 management.azure.com 的要求):

  • 會跨區域分散。 Azure Resource Manager 在每個 Azure 區域中都有個別的執行個體,這表示某個區域中 Azure Resource Manager 執行個體故障並不會影響另一個區域中 Azure Resource Manager 或其他 Azure 服務的可用性。 雖然 Azure Resource Manager 會跨區域分散,但有些服務是區域性的。 這項區分表示,雖然控制平面作業的初始處理具有復原性,但當要求轉送至服務時,可能會受到區域性中斷的影響。

  • 會在有多個可用性區域的位置中跨可用性區域 (及區域) 分散。 此分佈可確保在某區域 (region) 遺失一或多個區域 (zone) 時,Azure Resource Manager 可以容錯移轉至另一個區域 (zone) 或另一個區域 (region),以繼續為資源提供控制平面功能。

  • 不依賴單一邏輯資料中心。

  • 永遠不會停機進行維護活動。

這項復原能力適用於透過 Resource Manager 接收要求的服務。 例如,Key Vault 便會受惠於這項復原能力。

資源群組位置對齊

為了減少區域中斷的影響,建議您將資源放置在與資源群組相同的區域。

資源群組位置是 Azure Resource Manager 儲存資源群組中資源的中繼資料的位置。 Azure Resource Manager 會使用此位置進行路由和快取。 例如,在訂用帳戶或資源群組範圍列出資源時,Azure Resource Manager 會從快取取得資訊。

資源群組的區域無法使用時,Azure Resource Manager 將無法更新資源的中繼資料,並會封鎖您的寫入呼叫。 藉由共置您的資源和資源群組區域,您可以降低區域無法使用的風險,因為您的資源和中繼資料存在於同一區域中,而不是多個區域。

解析並行作業

兩個以上的作業同時嘗試更新相同的資源時,Azure Resource Manager 會偵測到衝突,並且只允許一個作業順利完成。 Azure Resource Manager 會封鎖其他作業並傳回錯誤。

並行資源更新可能會導致非預期的結果。 此解析可確保您的更新具決定性且可靠。 您將知道資源的狀態,並避免任何不一致或資料遺失。

假設您有兩個要求 (A 和 B) 同時嘗試更新相同的資源。 如果要求 A 是在要求 B 之前完成,要求 A 會成功而要求 B 則失敗。 要求 B 會傳回 409 錯誤。 取得該錯誤碼之後,您就可取得資源的更新狀態,並判斷是否要重新傳送要求 B。

下一步