Azure Bicep(二)語法簡介

Grant_Allen發表於2021-09-28

一,引言

  上一篇文章有介紹到 Azure Bicep 的部署問題,文中也只是演示部署範圍為 Sub,並將演示的 Azure Resource Group 到 Azure。給定 Bicep 檔案,可以部署的範圍很多,“資源組”,“訂閱”,“管理組”,“租戶”。那麼今天的文章主要是分享部署 Azure Bicep 的不同方法。

參考文件:使用 Bicep 和 Azure CLI 部署資

注意:若要部署 Bicep 檔案,需要安裝 Azure CLI 2.20.0 或更高版本

--------------------我是分割線--------------------

1,Azure Bicep 開發利器

2,Azure Bicep(二)語法簡介

二,正文

1,引數定義

每個引數需要一個名稱和型別,引數不能和同一部署範圍內的變數,資源,輸出或者其他引數同名。

常用的引數型別都包括:“string”,“int”,“bool”,“object”,“array” 等

需要注意的是 Bicep 檔案中的必要引數和可選引數,我們可以通過定義 Azure Web App 為例

//targetScope='resourceGroup' Default Deplay Target
param webAppName string = toLower('cnbateblogweb')
param webSiteName string=toLower('${webAppName}-appservice')
param runtime string='.NET 6'
param webAppPlanName string =toLower('${webAppName}-appserviceplan')
param location string = resourceGroup().location // Location for all resources

resource appServicePlan 'Microsoft.Web/serverfarms@2020-12-01' = {
  name: webAppPlanName
  location: location
  sku: {
    name: 'F1'
    capacity: 1
  }
}

resource webApplication 'Microsoft.Web/sites@2018-11-01' = {
  name: webSiteName
  location: location
  properties: {
    serverFarmId: appServicePlan.id
    siteConfig:{
      linuxFxVersion:runtime
    }
  }
}

如果我們需要為引數提供不同的值,即可針對不同環境重複使用Bicep 檔案,資源管理器會在啟動部署操作之前解析引數值,只要引數,資源管理器就會將其替換為解析的值。

2,部署範圍

文章的最開始也將到了,如果我們需要利用Azure CLI 部署 Bicep,就得使用 Azure CLI 2.20或者更高版本

範圍 部署命令
資源組 az deployment group create
管理組 az deployment mg create
租戶 az deployment tenant create
訂閱 az deployment sub create

重點:需要注意的是,Bicep 檔案中的 targetScope 和 執行Azure CLI  部署 Bicep 檔案的部署命令一致。開始之前,使用 azure login 建立連線關係。

如果要部署不村子的資源組,得先利用 Azure CLI 建立資源組(az group create --name xxxxx -location xxxxxxx),然後再部署本地 Bicep 檔案。(參考上述表格的內容)

3,部署過程

在部署 Bicep 檔案時,我們需要(不是必須的)為當前部署指定部署名稱,此名稱可以幫助我們從部署歷史記錄中檢索該部署。如果沒有為部署提供名稱,將使用 Bicep 檔案的名稱。 

我們在每次執行部署時,就會有一條包含部署名稱的條目會新增到資源組的部署歷史記錄中。 如果執行另一個相同的名稱部署,則會將先前的條目替換為當前部署。 如果要在部署歷史記錄中保持唯一條目,請為每個部署指定唯一名稱。

所以,我們要注意的是,為避免與併發部署衝突並確保部署歷史記錄中的條目是唯一的,我們需要為每個部署指定唯一的名稱。

4,回滾

此功能只能用於資源組部署。 它不支援訂閱、管理組或租戶級別的部署。如果指定的較早部署在部署歷史記錄中不存在,則回滾將返回錯誤。如果我們要使用此選項,那麼部署在部署歷史記錄中必須具有唯一名稱。 只有唯一名稱才能標識特定的部署。 如果沒有唯一名稱,失敗的部署可能會覆蓋歷史記錄中的成功部署。

1)如果需要回滾到最後一個成功的部署(新增 --rollback-on-error 引數作為標誌

az deployment group create  --name xxxxx  --resource-group xxxxx --template-file xxxxx.json  --rollback-on-error

2)如果需要回滾到特定的部署(新增 --rollback-on-error 引數並提供部署名稱作為標誌

az deployment group create  --name xxxxx  --resource-group xxxxx --template-file xxxxx.json  --rollback-on-error deployment01

 

5,部署歷史

1)列出資源組部署

az deployment group list --resource-group xxxxx

 

2)獲取特定部署

az deployment group show --resource-group xxxxx --name deployment01

............

同時,我們還可以通過Azure 資源管理器檢視部署歷史,檢查過去的部署中的特定操作和部署的資源

重點:個資源組的部署歷史記錄限含 800 個部署。 接近限制時,將自動從歷史記錄中刪除部署。

三,結尾

今天,我們只是從常用語法上介紹了Azure Bicep,從引數的宣告,到部署過程,再部署歷史,最後到回滾。其中的還有很多語法文中沒有體現出來,大家可以自行檢視文章開始的參考連結。下一篇將從實際開始,通過程式碼演示的方式分享操作。本文所分享的內容也存在著很多我自己的一些理解,有理解不到位的,還包含,並且指出不足之處!!!!!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。

作者:Allen 

版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。

相關文章