Azure Bicep 开发利器

思路浅析

  有用过 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

posted @ 2021-08-19 12:05  Grant_Allen  阅读(812)  评论(2编辑  收藏  举报