Bicep 是一种用于声明式部署Azure资源的领域特定语言。它的目标是通过更清晰的语法、改进的类型安全性、以及对模块化和代码重用的更好支持,彻底简化编写体验。

  Bicep 其实是对 ARM 模板的透明抽象,Bicep代码被解析成标准的 JSON 文件,它有效地将 ARM模板 视为一种中间语言(IL)。Bicep 不是编写应用程序的通用编程语言,而是声明Azure资源和资源属性的语言。简单来说,它是用来开发 Azure ARM 模板的。​

安装 Becep 工具

(1)VS Code 编辑器安装 Bicep 插件

Azure Bicep 开发利器_json

(2)安装 Bicep CLI

  1) 利用 Azure CLI 手动安装



az bicep install


Azure Bicep 开发利器_json_02

   2) 利用 Chocolatey 手动安装



choco install bicep


Azure Bicep 开发利器_json_03

创建 Bicep 文件

在Bicep项目目录下创建后缀为 bicep 的 main 文件,这个时候会下载.NET runtime ,稍等片刻。

Azure Bicep 开发利器_后缀_04

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'
}
}


当前代码中标记为红色的为自定义值。

点击图中箭头指向,可以以可视化的方式查看资源依赖关系

Azure Bicep 开发利器_microsoft_05

预部署检查Bicep

在部署 Bicep 文件之前,可以预测即将发生的资源更改。 此时我们需要添加在CLI 命令中加入 what-if,方便我们查看不同类型资源的更改。



az deployment sub  what-if --location "eastasia" --template-file "main.bicep"


Azure Bicep 开发利器_中间语言_06

部署Bicep

Bicep 能定义将资源部署到设定目标有 “资源组”,“订阅”,“管理组”,“租户”

本文中演示是将 “Web_Test_Rg” 部署到 “订阅”



az deployment sub create --confirm-with-what-if --location "eastasia" --template-file "main.bicep"


Azure Bicep 开发利器_microsoft_07

查看资源组部署状况

Azure Bicep 开发利器_microsoft_08

通过本篇文章介绍的 Bicep 语法的使用来看确实不需要写太多的参数设置,要比 JSON 语法更简单。更为我们在选择基础设施即代码的解决方案上又增加了新的方案。