Azure Bicep(二)语法简介
一,引言
上一篇文章有介绍到 Azure Bicep 的部署问题,文中也只是演示部署范围为 Sub,并将演示的 Azure Resource Group 到 Azure。给定 Bicep 文件,可以部署的范围很多,“资源组”,“订阅”,“管理组”,“租户”。那么今天的文章主要是分享部署 Azure Bicep 的不同方法。
注意:若要部署 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
版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。
Azure Bicep(二)语法简介的更多相关文章
- Azure Bicep(三)变量控制
		
一,引言 当我们在使用 Azure Bicep 的时候会出现以下几个问题: 1)文件中有很多地方会重用很多相同的值 2)输入参数可以在统一的地方进行修改 带着这些问题,我们开始今天的内容,学习如何在 ...
 - Android系统Recovery工作原理之使用update.zip升级过程---updater-script脚本语法简介以及执行流程(转)
		
目前update-script脚本格式是edify,其与amend有何区别,暂不讨论,我们只分析其中主要的语法,以及脚本的流程控制. 一.update-script脚本语法简介: 我们顺着所生成的脚本 ...
 - ROS Learning-032  (提高篇-010 Launch)Launch 深入研究  --- (启动文件编程)ROS 的 XML语法简介
		
ROS 提高篇 之 Launch 深入研究 - 01 - 启动文件的编程 - ROS 的 XML语法简介 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubu ...
 - Android系统Recovery工作原理之使用update.zip升级过程分析(九)---updater-script脚本语法简介以及执行流程【转】
		
本文转载自:http://blog.csdn.net/mu0206mu/article/details/7465603 Android系统Recovery工作原理之使用update.zip ...
 - freemarker语法简介
		
ftl是一种模板标记语言,用于渲染数据,输入html结构.语法简介如下: ${book.name} ${book.name?if_exists} //值是否存在 ${book.name??} //值是 ...
 - protobuf语法简介2
		
protobuf语法简介2 1.optional的字段和默认值 如上所述,消息描述中的一个元素可以被标记为"可选的"(optional).一个格式良好的消息可以包含0个或一个opt ...
 - protobuf 语法简介
		
protobuf 语法简介 1.基本语义 在.proto文件中,最基本的数据类型为message,如其定义所示,由message引导,之后是message类型的名字,之后是由{}包含的各个域(fiel ...
 - ES6常用语法简介import export
		
ES6常用语法简介import export let与var用法区别 //var var a = []; for (var i = 0; i < 10; i++) { a[i] = functi ...
 - 【ABAP系列】SAP ABAP7.40新语法简介第一篇
		
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP7.40新语法简 ...
 
随机推荐
- 演练:创建和使用自己的动态链接库 (C++)
			
此分布演练演示如何使用 Visual Studio IDE 通过 Microsoft C++ (MSVC) 编写自己的动态链接库 (DLL). 然后,该演练演示如何从其他 C++ 应用中使用 DLL. ...
 - 09.SpringMVC之类型转换
			
一. 类型转换器 前端传入的值,从表单中传入的值,都是字符串或者是字符串数组的形式传入的,在后端需要进行手动的转换类型,然后才能正确的使用. 框架一般对常见的数据类型的转换进行了封装提供,如字符串转换 ...
 - 通用Mapper学习
			
<通用Mapper>部分注解 @Table(name="tableName")用法: 这个注解写在实体类的上面 指定数据库表的名字作用: 建立实体类和数据库表之间 ...
 - hive简单数据分析
			
简单查询分析 select brand_id from user_log limit 10; -- 查看日志前10数据 好像也没啥,和SQL相同,,limit取前多少条 , as取别名 查询条数统计 ...
 - Wiring in Spring: @Autowired, @Resource and @Inject 区别
			
refer:https://www.baeldung.com/spring-annotations-resource-inject-autowire 主要是查找顺序不一致: @Resource Mat ...
 - jdbc操作mysql(二):封装
			
案例四:封装共有操作 封装一个数据库的会话的类 import java.sql.*; public class ConnectionUtil { /** * 获取连接对象的方法,返回一个Connect ...
 - Ansible基础使用
			
原文转自:https://www.cnblogs.com/itzgr/p/10233932.html作者:木二 目录 一 Ansible命令用法 1.1 免密钥 1.2 Ad-Hoc基础命令 1.3 ...
 - git clone 设置临时的 proxy
			
export ALL_PROXY=socks5://127.0.0.1:1086 git clone --depth 1 https://github.com/xxx/xxx.git unset AL ...
 - 电子设备的使用方法-第5版(佳明智能腕表小米手机联想轻薄笔记本群晖存储)我的腾讯QQ电子邮箱地址是  595076941@qq.com  -  2021年9月5日
			
电子设备的使用方法-第5版 (佳明智能腕表小米手机联想轻薄笔记本群晖存储) 2021年9月5日 我的腾讯QQ电子邮箱地址是 595076941@qq.com 前言 大家好,我叫徐晓亮,今天我 ...
 - java9的JShell小工具和编译器两种自动优化
			
一.按顺序逐步执行的脚本程序: 二.编译器自动优化 1.不超数据类型范围编译器自动添加强转操作: 2.一但发生运算,byte/short/char都会自动提升为Int,当只有常量参与运算时,编译器会先 ...