描述 Azure Resource Manager (ARM) 和 Azure ARM 範本

已完成

Azure Resource Manager (ARM) 是 Azure 的部署和管理服務。 其提供一個管理層,讓您能夠在 Azure 帳戶中建立、更新及刪除資源。 每當您使用 Azure 資源執行任何動作時,都會涉及 ARM。

當使用者從 Azure 工具、API 或 SDK 任何一個傳送要求時,ARM 會收到要求。 ARM 會驗證及授權要求。 然後,ARM 會將要求傳送至 Azure 服務,以執行要求的動作。 因為所有要求都是透過相同的 API 處理,所以您會在所有不同的工具中看到一致結果和功能。

Azure Resource Manager 的優點

有了 Azure Resource Manager,您可以:

  • 透過宣告式範本而不是指令碼來管理基礎結構。 Resource Manager 範本是一個 JSON 檔案,其定義您要部署到 Azure 的項目。
  • 以群組形式部署、管理及監視您解決方案的所有資源,而非個別處理這些資源。
  • 在整個開發生命週期中重新部署解決方案,並確信資源會以一致的狀態部署。
  • 定義資源之間的相依性,使這些資源以正確順序進行部署。
  • 將存取控制套用至所有服務,因為 RBAC 已原生整合至管理平台。
  • 將標籤套用至資源,以便以邏輯方式組織您訂用帳戶中的所有資源。
  • 依共用相同標籤的一組資源檢視費用,讓組織的帳單清楚明瞭。

下列影片提供 Azure Resource Manager 的概觀。

基礎結構即程式碼

基礎結構即程式碼這個概念可供您以程式碼管理基礎結構。 在簡介層級,像是使用 Azure Cloud Shell、Azure PowerShell 或 Azure CLI 來管理和設定您的資源。 當您在雲端中更熟悉時,可以使用基礎結構即程式碼概念,使用可重複的範本和組態來管理整個部署。 ARM 範本和 Bicep 是搭配 Azure Resource Manager 使用基礎結構即程式碼來維護環境的兩個範例。

ARM 範本

藉由使用 ARM 範本,您可以宣告式 JSON 格式描述所要使用的資源。 使用 ARM 範本時,會在執行任何程式碼之前驗證部署程式碼。 這可確保會正確建立並連線資源。 然後範本會以平行方式協調建立這些資源。 也就是說,如果您需要相同資源的 50 個執行個體,就會同時建立全部 50 個執行個體。

最後,開發人員、DevOps 專業人員或 IT 專業人員只須在 ARM 範本中定義每種資源所需的狀態及設定,並將其餘工作交給範本即可。 範本甚至可在安裝資源的前後執行 PowerShell 及 Bash 指令碼。

使用 ARM 範本的優點

ARM 範本在規劃部署 Azure 資源時提供許多優點。 以下是一些優點:

  • 宣告式語法:ARM 範本可讓您以宣告方式建立和部署完整 Azure 基礎結構。 宣告式語法表示您要部署的項目,但不需要撰寫實際的程式設計命令和順序來部署資源。
  • 可重複的結果:在整個開發生命週期中重新部署基礎結構,並確信資源會以一致的方式部署。 您可以使用相同的 ARM 範本來部署多個開發/測試環境,並知道所有環境都相同。
  • 協調流程:您無須擔心複雜的作業順序。 Azure Resource Manager 會協調具有相依性資源的部署,使其以正確的順序建立。 Azure Resource Manager 會盡可能平行部署資源,以便您的部署完成速度較序列部署更快。 您可以透過單一命令來部署範本,而不是透過多個命令式命令來部署範本。
  • 模組化檔案:您可以將範本分成較小型且可重複使用的元件,並在部署時將其連結在一起。 您也可以在另一個範本中內嵌一個範本。 例如,您可以建立 VM 堆疊的範本,然後將該範本內嵌置於部署整個環境的範本內,且該 VM 堆疊會一致地部署在每個環境範本中。
  • 擴充性:您可以使用部署指令碼將 PowerShell 或 Bash 指令碼新增至您的範本。 部署指令碼讓您更能夠在部署期間設定資源。 指令碼可包含在範本中,或儲存在外部來源並在範本中參考。 部署指令碼讓您能夠在單一 ARM 範本中完成端對端環境設定。

Bicep

Bicep 是使用宣告式語法來部署 Azure 資源的語言。 Bicep 檔案會定義基礎結構和組態。 然後,ARM 會根據您的 Bicep 檔案部署該環境。 雖然類似於以 JSON 撰寫的 ARM 範本,但 Bicep 檔案通常會使用更簡單、更簡潔的樣式。

Bicep 的一些優點包括:

  • 支援所有資源類型和 API 版本:Bicep 立即支援 Azure 服務的所有預覽和 GA 版本。 當資源提供者引進新的資源類型和 API 版本,您就可以在 Bicep 檔案中使用它們。 使用新的服務之前,您不需要等候工具更新。
  • 簡單語法:相較於對等的 JSON 範本,Bicep 檔案更簡潔且更容易閱讀。 Bicep 不需要先前的程式設計語言知識。 Bicep 語法為宣告式,並指定您想要部署的資源和資源屬性。
  • 可重複的結果:在整個開發生命週期中重新部署基礎結構,並確信資源會以一致的方式部署。 Bicep 檔案具有等冪性,這表示您可以多次部署相同的檔案,並取得相同狀態下的相同資源類型。 您可以開發一個代表所需狀態的檔案,而無須開發多個不同的檔案來代表更新。
  • 協調流程:您無須擔心複雜的作業順序。 Resource Manager 會協調相互依存資源的部署,使其以正確的順序建立。 Resource Manager 會盡可能以平行方式部署資源,讓您的部署比序列部署更快完成。 您可以透過單一命令來部署檔案,而不是透過多個命令式命令來部署檔案。
  • 模組化:您可以使用模組將 Bicep 程式碼分成可管理的元件。 模組會部署一組相關的資源。 模組可讓您重複使用程式碼並簡化開發。 隨時將模組新增至 Bicep 檔案,以部署這些資源。