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

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

安装 Becep 工具

(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"

查看资源组部署状况

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

Azure Bicep 开发利器的更多相关文章

  1. Azure Bicep(二)语法简介

    一,引言 上一篇文章有介绍到 Azure Bicep 的部署问题,文中也只是演示部署范围为 Sub,并将演示的 Azure Resource Group 到 Azure.给定 Bicep 文件,可以部 ...

  2. Azure Bicep(三)变量控制

    一,引言 当我们在使用 Azure Bicep 的时候会出现以下几个问题: 1)文件中有很多地方会重用很多相同的值 2)输入参数可以在统一的地方进行修改 带着这些问题,我们开始今天的内容,学习如何在 ...

  3. [.net 面向对象程序设计进阶] (27) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git

    [.net 面向对象程序设计进阶] (26) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git 本篇导读: 接上两篇,继续Git之旅 分布式版本控制系统 ...

  4. [.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit

    [.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit 读前必备: 接上篇: 分布式版本控制系统Git——使用GitS ...

  5. [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境

    [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境 本篇导读: 前面介绍了两款代码管理工具 ...

  6. [.net 面向对象程序设计进阶] (24) 团队开发利器(三)使用SVN多分支并行开发(下)

    [.net 面向对象程序设计进阶] (24) 团队开发利器(三)使用SVN多分支并行开发(下) 本篇导读: 接上篇继续介绍SVN的高级功能,即使用分支并行开发.随着需求的不断变更,新功能的增加.特别是 ...

  7. [.net 面向对象程序设计进阶] (23) 团队开发利器(二)优秀的版本控制工具SVN(上)

    [.net 面向对象程序设计进阶] (23) 团队开发利器(二)优秀的版本控制工具SVN(上) 本篇导读: 上篇介绍了常用的代码管理工具VSS,看了一下评论,很多同学深恶痛绝,有的甚至因为公司使用VS ...

  8. [.net 面向对象程序设计进阶] (22) 团队开发利器(一)简单易用的代码管理工具VSS

    [.net 面向对象程序设计进阶] (22) 团队开发利器(一)简单易用的代码管理工具VSS 本篇要点:在进阶篇快要结束的时候说说源代码管理器,我们的开发,不是一个人可以完成的事,团队协作很重要,而且 ...

  9. MIS系统开发利器,快速的字典录入解决方案,另类的、可管理的.NET DataWindow

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

随机推荐

  1. XML:使用cxf调用WebService接口时报错:编码GBK的不可映射字符(设置UTF-8字符集)

    调用代码如下 JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); Client client = dcf. ...

  2. SpringCloud:feign默认jackson解析'yyyy-MM-ddTHH:mm:ssZ'时间格式报错

    Feign默认的使用jackson解析,所以时间传值时会报错,时间格式错误 解决办法: 修改feign解析方式为fastjson方式: @Configuration public class CxfC ...

  3. php+redis实现全页缓存系统

    php redis 实现全页缓存系统之前的一个项目说的一个功能,需要在后台预先存入某个页面信息放到数据库,比如app的注册协议,用户协议,这种.然后在写成一个php页面,app在调用接口的时候访问这个 ...

  4. DB2某建表语句

    DB2建表加注解的建表语句 CREATE TABLE table_name ( company CHARACTER(1) NOT NULL DEFAULT 'N', online CHARACTER( ...

  5. [小技巧] 在bash中生成随机数

    译至:http://d.hatena.ne.jp/anmino/20091017/1255705586 bash的SHELL参数RANDOM可以生成0-32767的随机数.想设定从1到N的随机数范围的 ...

  6. 将gitlab内置node_exporter提供外部prometheus使用

    目录 修改gitlab的配置 重新初始化配置 gitlab服务已经包含了node_exporter服务,但是配置文件限制了9100端口的访问,所以主机信息不能直接被外部的prometheus收集 修改 ...

  7. 访问其他人的vue项目

    本地git拉取项目 git clone git@git路径 项目clone到本地后 1.工具命令行切换到此项目路径下 cd 路径名称 2.首先要下载项目所需要的资源包  npm install 这里会 ...

  8. JPcap入门

    1,参照入门:安装第一个代码:https://blog.csdn.net/qq_37638061/article/details/80710143 2,数据解析,不可用但有启发意义:https://b ...

  9. 前端开发入门到进阶第四集【使用sublime安装jshint和cssLint】

    参考:https://blog.csdn.net/qq_27965129/article/details/52786224 使用sublime安装JSHint插件: 1,解决不能使用package c ...

  10. 使用mvn命令将pom和jar上传至nexus私服

    要将自定义的jar或者pom上传至nexus私服,需要配置maven的settings文件! 上传至nexus私服配置 1. settings配置 <!-- maven设置私服对应的信息:id. ...