思路淺析
有用過 IAC 工具的同學們都知道。在 Azure ARM 的 JSON 中必須在模板的相應部分聲明所有參數、變量和輸出,有一定的限制。
本次實驗,我們可以利用 Azure Bicep 靈巧的部署Azure資源。它比 JSON 語法更簡單,不需要寫太多的參數設置。Bicep 是一種用於聲明式部署Azure資源的領域特定語言。它的目標是通過更清晰的語法、改進的類型安全性、以及對模塊化和代碼重用的更好支持,徹底簡化編寫體驗。
Bicep 其實是對 ARM 模板的透明抽象,Bicep 代碼被解析成標准的 JSON 文件,它有效地將 ARM模板 視為一種中間語言(IL)。Bicep 不是編寫應用程序的通用編程語言,而是聲明Azure資源和資源屬性的語言。簡單來說,它是用來開發 Azure ARM 模板的。
大致思路是這樣的,首先我們需要在開發環境中安裝 Azure CLI 和 Biecp CLI。然后,使用VS Code 中的 Bicep 插件實現聲明 Azure 資源的Biecp文件。最后,我們利用 Azure CLI 與 Bicep 文件配合使用將資源部署到 Azure。
安裝 Bicep 工具
(1)VS Code 編輯器安裝 Bicep 插件
(2)安裝 Bicep CLI
1) 利用 Azure CLI 手動安裝
az bicep install
2) 利用 Chocolatey 手動安裝
choco install bicep
創建 Bicep 文件
在Bicep項目目錄下創建后綴為 bicep 的 main 文件,這個時候會下載.NET runtime ,稍等片刻。
Azure資源的聲明還是從最熟悉的資源組開始,在 “main.bicep” 文件中中輸入 “res-rg” ,並按Tab 補全代碼。添加Scope作用域,如下圖所示
targetScope='subscription'
resource rg 'Microsoft.Resources/resourceGroups@2021-04-01' = {
name: 'Web_Test_Bicep_RG'
location: 'EastAsia'
tags:{
'tag': 'create by bicep'
}
}
當前代碼中標記為紅色的為自定義值。
點擊圖中箭頭指向,可以以可視化的方式查看資源依賴關系
預部署檢查Bicep
在部署 Bicep 文件之前,可以預測即將發生的資源更改。 此時我們需要添加在CLI 命令中加入 what-if,方便我們查看不同類型資源的更改。
az deployment sub what-if --location "eastasia" --template-file "main.bicep"
部署Bicep
Bicep 能定義將資源部署到設定目標有 “資源組”,“訂閱”,“管理組”,“租戶”
本文中演示是將 “Web_Test_Rg” 部署到 “訂閱”
az deployment sub create --confirm-with-what-if --location "eastasia" --template-file "main.bicep"
查看資源組部署狀況,Azure 資源組部署成功。
總結
本期實驗,我們學習了如何使用 Azure Bicep 預部署檢測資源組,也為我們在選擇基礎設施即代碼的解決方案上又增加了新的方案。
對於上述實驗中涉及到的各類技術和服務,大家可以通過下列鏈接進一步了解。
Azure Bicep 技術文檔:https://docs.microsoft.com/zh-cn/azure/azure-resource-manager/bicep/overview
Bicep 文檔:https://github.com/Azure/bicep