共用方式為


什麼是 Bicep?

Bicep 是使用宣告式語法來部署 Azure 資源的特定領域語言。 在 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@2023-05-01' = {
      name: storageAccountName
      location: location
      sku: {
        name: 'Standard_LRS'
      }
      kind: 'StorageV2'
      properties: {
        accessTier: 'Hot'
      }
    }
    

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

    即時撰寫 Bicep 檔案的螢幕快照

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

  • 可重複的結果:在開發生命週期中部署基礎結構,並確信您的資源會一致地部署。 Bicep 檔案是等冪的,這表示您可以多次部署相同的檔案,並取得相同狀態中的相同資源類型。 您可以開發一個代表所需狀態的檔案,而不是開發許多個別的檔案來代表更新。 例如,下列檔案會建立儲存體帳戶。 如果您在指定的屬性已經存在時部署此樣本和記憶體帳戶,則不會進行變更:

    param location string = resourceGroup().location
    
    resource mystore 'Microsoft.Storage/storageAccounts@2023-05-01' = {
      name: 'mystorageaccount'
      location: location
      sku: {
        name: 'Standard_LRS'
      }
      kind: 'StorageV2'
    }
    

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

    圖表比較 Bicep 檔案與基礎結構之間的部署,因為程式代碼不在範本中。

  • 模組化:使用模組將 Bicep 程式代碼分割成可管理的元件。 模組可協助您重複使用程式碼並簡化開發。 模組會部署一組相關的資源。 當您需要部署這些資源時,將模組新增至 Bicep 檔案。

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

  • 預覽變更:您可以在部署 Bicep 檔案之前,先使用 假設作業 來預覽變更。 假設狀況作業會顯示要建立、更新或刪除哪些資源,以及要變更的任何資源屬性。 它也會檢查您環境的目前狀態,並不需要管理此狀態。

  • 沒有要管理的狀態或狀態檔案:Azure 會儲存所有狀態。 您可以與其他人共同作業,並確信您的更新會如預期般處理。

  • 無成本和開放原始碼:因為 Bicep 是免費的,因此您不需要支付進階功能的費用。 Microsoft 支援服務 支援它。

開始使用

若要開始使用 Bicep:

  1. 安裝工具。 如需詳細資訊,請參閱 設定 Bicep 開發和部署環境,或使用 VS Code devcontainer/Codespaces 存放庫 來取得預先設定的撰寫環境。

  2. 完成 Bicep快速入門學習課程模組。

若要將現有的 Resource Manager 範本分解為 Bicep,請參閱 將 JSON Azure Resource Manager 範本分解為 Bicep。 您可以使用 Bicep 遊樂場 來並排檢視 Bicep 及其對等的 JSON。

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

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

關於語言

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

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

若要瞭解 Bicep,請觀看下列影片:

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

Resource Manager 範本中有效的資源類型、API 版本和屬性在 Bicep 檔案中有效。

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

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

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

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

取得支援

以下是針對 Azure Resource Manager (ARM) 範本相關問題開啟支援票證的步驟:

  1. 開啟 Azure 入口網站

  2. 在右上角選取 [支援 + 疑難解答] 圖示。

  3. 在 [簡短描述問題] 中,輸入 ARM 範本,然後選取 [前往]

  4. 在 [您遇到哪些服務問題?] 中,選取 [監視與管理] 底下的 [入口網站],然後選取 [下一步]

  5. 選取訂用帳戶,然後選取 [下一步]

  6. 選取 [ARM 範本的問題],然後選取 [下一步]

    要求 ARM 範本支援的螢幕快照。

參與 Bicep

Bicep 是開放原始碼專案。 這表示您可以參與 Bicep 的開發,並參與更廣泛的 Bicep 社群。 貢獻類型包括:

  • Azure 快速入門範本。 您可以將範例 Bicep 檔案和 ARM 範本貢獻至 Azure 快速入門範本存放庫。 如需詳細資訊,請參閱 Azure 快速入門範本貢獻指南
  • 文件。 Bicep 的文件也是可以接受貢獻的。 如需詳細資訊,請參閱我們的 參與者指南概觀
  • 片段。 您有沒有認為社群會受益的最愛片段? 您可以將它新增至 Visual Studio Code 延伸模組的代碼段集合。 如需詳細資訊,請參閱 參與 Bicep
  • 程式碼變更。 如果您是開發人員,並且有一些想法希望能在 Bicep 語言或工具中實現,您可以提交拉取請求。 如需詳細資訊,請參閱 參與 Bicep

下一步