什麼是 Bicep?
既然您的小組了解 Azure Resource Manager 的運作方式,您決定使用 ARM 範本進行資源佈建。 您了解可透過兩種不同的方式撰寫 ARM 範本:使用 JSON 或使用 Bicep。 您想要深入了解 Bicep 範本,以便對要使用哪種語言做出旁徵博引的決定。
在此單元中,您會了解 Bicep 範本語言,以及其為範本製作提供的優點。
Bicep 語言
Bicep 是以宣告方式部署 Azure 資源所使用的 Resource Manager 範本語言。 Bicep 是針對特定案例或網域所設計,使其成為特定領域語言。 Bicep 不可作為撰寫應用程式的標準程式設計語言。 Bicep 只能用來建立 Resource Manager 範本。 Bicep 旨在讓您容易了解並可直接學習,而不論您使用其他程式設計語言的體驗為何。 所有資源類型、API 版本和屬性在 Bicep 範本中都是有效的。
注意
如果您先前探討過如何使用 JSON 範本,您可能已發現 Bicep 簡化了建立範本的體驗。 其提供更容易了解的語法、進一步支援模組化和可重複使用的程式碼,並改善了型別安全。 建立 JSON ARM 範本需要複雜的運算式,因此最終結果可能很冗長。
Bicep 的優點
Bicep 為範本製作提供許多優於 JSON 的改善,包括:
更簡單的語法:Bicep 為撰寫範本提供更簡單的語法。 您可以直接參考參數和變數,而不需要使用複雜的函式。 使用字串插值取代串連,以合併名稱和其他項目的值。 您可以使用其符號名稱 (而不是複雜的參考陳述式) 直接參考資源的屬性。 這些語法改善有助於製作和讀取 Bicep 範本。
模組:您可以將複雜範本部署分成較小的模組檔案,然後在主要範本中參考這些檔案。 這些模組簡化了管理作業並提高再使用性。 您甚至可以與您的小組共用模組。
自動相依性管理:在大部分情況下,Bicep 會自動偵測資源之間的相依性。 此程序會移除一些與範本製作相關的工作。
型別驗證和 IntelliSense:適用於 Visual Studio Code 的 Bicep 延伸模組為所有 Azure 資源類型 API 定義提供豐富驗證和 IntelliSense 功能。 這項功能有助於提供更簡單的製作體驗。
讓我們來看看下列範例,其中使用 Bicep 範本來定義 Azure 儲存體帳戶。 範本會自動產生儲存體帳戶的名稱。 部署之後,會將資源識別碼以輸出形式傳回給執行範本的使用者。
param location string = resourceGroup().location
param namePrefix string = 'storage'
var storageAccountName = '${namePrefix}${uniqueString(resourceGroup().id)}'
var storageAccountSku = 'Standard_RAGRS'
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: storageAccountName
location: location
kind: 'StorageV2'
sku: {
name: storageAccountSku
}
properties: {
accessTier: 'Hot'
supportsHttpsTrafficOnly: true
}
}
output storageAccountId string = storageAccount.id