Bicep 的運作方式

已完成

您已了解 Bicep 範本語言,以及其為範本製作提供的優點。 在開始撰寫 Bicep 範本以佈建資源之前,您想要深入了解 Bicep 的運作方式。

在此單元中,您將了解 Bicep 如何搭配 Azure Resource Manager 運作。

Bicep 部署

在上一個單元中,您已了解 Bicep 是特定領域語言,這表示 Bicep 是專為特定案例或「領域」所設計。 Bicep 的建置目的是為了讓您輕鬆地部署和設定 Azure 資源。

當將一項資源或一系列的資源部署到 Azure 時,您會將 Bicep 範本提交至 Resource Manager,但其仍需要 JSON 範本。 Bicep 中的內建工具可將 Bicep 範本轉換成 JSON 範本。 此程序稱為「轉譯」,基本上會將 ARM 範本視為中繼語言。 當提交部署時,就會自動進行轉換;您也可以手動進行轉換。

Diagram that shows the workflow from a template author, a Bicep template, an emitted JSON template, and a deployment to Azure.

注意

轉譯是將以一種語言所撰寫原始程式碼轉換成另一種語言的程序。

最新版 Azure CLI 和 Azure PowerShell 都有內建的 Bicep 支援。 您可以使用相同的部署命令部署 Bicep 和 JSON 範本。 例如,下列命令會將 Bicep 範本部署到名為 storage-resource-group 的資源群組:

az deployment group create \
  --template-file main.bicep \
  --resource-group storage-resource-group

提交此部署之後,Resource Manager 會查看 Azure 中已部署的內容。 然後查看您要嘗試部署的內容,並設定一連串的步驟以達成此狀態。 所有這些活動都需要叫用 Resource Manager API。

您可以使用 bicep build 命令檢視提交至 Resource Manager 的 JSON 範本。 在下一個範例中,會將 Bicep 範本轉換成其對應的 JSON 範本:

bicep build main.bicep

比較 JSON 和 Bicep

Bicep 提供較簡單的語法,可在製作範本時使用。 讓我們來看看下列這兩個範本的範例。 左邊的範本是 Bicep 範本。 右邊的範本是 JSON 範本。

Screenshot that compares Bicep code on the left and the corresponding JSON code on the right.

請注意,Bicep 範本包含較少的程式碼。 語法比較容易閱讀和理解,沒有像右邊 JSON 範本一樣複雜的運算式。

注意

若要並排檢視對等的 JSON 和 Bicep 檔案,請參閱 Bicep Playground