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++指向函数的指针数组
可以定义一个指针,指向一个函数,还 可以定义一个指向函数的指针数组,每个元素都是一个指向函数的指针,不过,它们指向的函数的格式都是相同的. 代码如下 //指向函数的指针数组 #include<i ...
- uwp 之吐司 toast
Toast -------------------------------------------------------------- var t = Windows.UI.Notification ...
- 十七:使用JDBC处理MySQL大数据
一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像.声音.二进制文等. 在实际开发中,有时 ...
- 关于 java编程思想第五版 《On Java 8》
On Java 8中文版 英雄召集令 这是该项目的GITHUB地址:https://github.com/LingCoder/OnJava8 广招天下英雄,为开源奉献!让我们一起来完成这本书的翻译吧! ...
- 用vue实现扫描二维码跳转页面功能
怎么能用vue实现扫描二维码跳转页面功能 1. 安装依赖 npm install vue-qr --save 2. <template> <div> <div ...
- unity优化 — UGUI纹理格式的选择
首次界面打开加载的资源(如 贴图)会被缓存在内存中,再次打开界面由于内存中已有了资源 所以会更快.如何让首次打开界面会更快呢? 图片是否进行了有效的压缩.Android 平台下不带透明通道 优先使用E ...
- centos7 权限更改,所属用户及用户组更改
2021-08-03 # 查看文件的权限 ll 第一个字符, "-" 表示是文件, "d" 表示是目录(directory) 后面 9 个字符每 3 个字符又作 ...
- Mac shell 调节音量
$ osascript -e 'get volume settings' $ osascript -e 'output volume of (get volume settings)' $ osasc ...
- vue 元素拖动效果
<draggable v-model="preface" chosenClass="chosen" ghost-class="ghost&quo ...
- EFCore 开始
1. 数据准备 新建类库项目--实体 NuGet安装: Microsoft.EntityFrameworkCore 新建类库项目--DbContext NuGet安装: Microsoft.Entit ...