一,引言
上一篇文章有介绍到 Azure Bicep 的部署问题,文中也只是演示部署范围为 Sub,并将演示的 Azure Resource Group 到 Azure。给定 Bicep 文件,可以部署的范围很多,“资源组”,“订阅”,“管理组”,“租户”。那么今天的文章主要是分享部署 Azure Bicep 的不同方法。
参考文档:使用 Bicep 和 Azure CLI 部署资
注意:若要部署 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,从参数的声明,到部署过程,再部署历史,最后到回滚。其中的还有很多语法文中没有体现出来,大家可以自行查看文章开始的参考链接。下一篇将从实际开始,通过代码演示的方式分享操作。本文所分享的内容也存在着很多我自己的一些理解,有理解不到位的,还包含,并且指出不足之处!!!!!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。