什麼是 Bicep?

Bicep 是使用宣告式語法來部署 Azure 資源的特定領域語言 (DSL)。 在 Bicep 檔案中,您會定義要部署至 Azure 的基礎結構,然後在整個開發生命週期中使用該檔案,以重複部署您的基礎結構。 您的資源會以一致的方式進行部署。

Bicep 提供簡潔的語法、可靠的類型安全,並支援程式碼重複使用。 Bicep 能夠為您在 Azure 中的基礎結構即程式碼解決方案,提供最佳的製作體驗。

Bicep 的優點

Bicep 可提供下列優點:

  • 支援所有資源類型和 API 版本:Bicep 立即支援 Azure 服務的所有預覽和 GA 版本。 當資源提供者引進新的資源類型和 API 版本,您就可以在 Bicep 檔案中使用它們。 使用新的服務之前,您不需要等候工具更新。

  • 簡單語法:相較於對等的 JSON 範本,Bicep 檔案更簡潔且更容易閱讀。 Bicep 不需要先前的程式設計語言知識。 Bicep 語法為宣告式,並指定您想要部署的資源和資源屬性。

    下列範例顯示 Bicep 檔案與對等 JSON 範本之間的差異。 這兩個範例都會部署儲存體帳戶。

    param location string = resourceGroup().location
    param storageAccountName string = 'toylaunch${uniqueString(resourceGroup().id)}'
    
    resource storageAccount 'Microsoft.Storage/storageAccounts@2021-06-01' = {
      name: storageAccountName
      location: location
      sku: {
        name: 'Standard_LRS'
      }
      kind: 'StorageV2'
      properties: {
        accessTier: 'Hot'
      }
    }
    

  • 編寫體驗:當您使用 適用於 VS Code 的 Bicep 延伸模組來建立 Bicep 檔案時,您會獲得一流的編寫體驗。 編輯器提供豐富的型別安全、intelliSense 和語法驗證。

    Bicep file authoring example

    若要在 Visual Studio 中建立 Bicep 檔案,您也可以使用 適用於 Visual Studio Code 的 Bicep 延伸模組

  • 可重複的結果:在整個開發生命週期中重新部署基礎結構,並確信資源會以一致的方式部署。 Bicep 檔案具有等冪性,這表示您可以多次部署相同的檔案,並取得相同狀態下的相同資源類型。 您可以開發一個代表所需狀態的檔案,而無須開發多個不同的檔案來代表更新。

  • 協調流程:您無須擔心複雜的作業順序。 Resource Manager 會協調相互依存資源的部署,使其以正確的順序建立。 Resource Manager 會盡可能以平行方式部署資源,讓您的部署比序列部署更快完成。 您可以透過單一命令來部署檔案,而不是透過多個命令式命令來部署檔案。

    Bicep deployment comparison

  • 模組化:您可以使用模組將 Bicep 程式碼細分成可管理的組件。 模組會部署一組相關的資源。 模組可讓您重複使用程式碼並簡化開發。 隨時將模組新增至 Bicep 檔案,以部署這些資源。

  • 與 Azure 服務整合:Bicep 已與 Azure 服務整合,例如 Azure 原則、範本規格和藍圖。

  • 預覽變更:在部署 Bicep 檔案之前,您可以使用假設狀況作業來取得變更的預覽。 透過假設狀況,您可以看到系統所要建立、更新或刪除的資源,以及將要變更的資源屬性。 假設狀況作業會檢查您環境的目前狀態,並排除管理狀態的需求。

  • 沒有要管理的狀態或狀態檔案:所有狀態都會儲存在 Azure 中。 使用者可以共同作業,並確信可如預期處理其更新。

  • 無成本和開放原始碼:Bicep 完全免費。 您無須支付進階版功能的費用。 Microsoft 支援服務也加以支援。

開始使用

若要開始使用 Bicep:

  1. 安裝工具。 請參閱設定 Bicep 開發和部署環境。 或者,您可以使用 VS Code Devcontainer/Codespaces 存放庫來取得預先設定的撰寫環境。
  2. 完成快速入門Bicep 的 Learn 模組

若要將現有的 ARM 範本反向組譯為 Bicep,請參閱 反向組譯 ARM 範本 JSON 至 Bicep。 您可以使用 Bicep 遊樂場並排檢視 Bicep 和對等的 JSON。

若要了解 Bicep 檔案中可用的資源,請參閱 Bicep 資源參考

Bicep 範例可在 Bicep GitHub 存放庫中找到

關於語言

Bicep 不適合做為撰寫應用程式的一般程式設計語言。 Bicep 檔案會宣告 Azure 資源和資源屬性,不需要撰寫一連串的程式設計命令來建立資源。

若要追蹤 Bicep 工作的狀態,請參閱 Bicep 專案存放庫

若要了解 Bicep,請參閱下列影片。

您可以使用 Bicep (而不是 JSON) 來開發 Azure Resource Manager 範本 (ARM 範本)。 建立 ARM 範本的 JSON 語法可能很冗長,而且需要複雜的運算式。 Bicep 語法可降低這種複雜性,並改善開發體驗。 Bicep 是透過 ARM 範本 JSON 的透明抽象概念,且不會遺失任何 JSON 範本功能。 在部署期間,Bicep CLI 會將 Bicep 檔案轉換成 ARM 範本 JSON。

在 ARM 範本中有效的資源類型、API 版本和屬性在 Bicep 檔中皆是有效的。

相較於對等的 JSON,Bicep 提供更簡單且更簡潔的語法。 您無須使用括號運算式 [...]。 而是直接呼叫函式,從參數和變數中取得值。 您可為每個部署的資源提供符號名稱,輕鬆地在範本中參照該資源。

如需語法的完整比較,請參閱比較範本的 JSON 和 Bicep

Bicep 會自動管理資源之間的相依性。 您可以避免在另一個資源宣告中使用資源的符號名稱時設定 dependsOn

Bicep 檔案的結構比 JSON 範本更有彈性。 您可以在檔案中的任何位置宣告參數、變數和輸出。 在 JSON 中,您必須在範本的對應區段內宣告所有參數、變數和輸出。

下一步

開始使用快速入門

如需常見問題的答案,請參閱 Bicep 常見問題集