一,引言

  上一篇文章有介绍到 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,从参数的声明,到部署过程,再部署历史,最后到回滚。其中的还有很多语法文中没有体现出来,大家可以自行查看文章开始的参考链接。下一篇将从实际开始,通过代码演示的方式分享操作。本文所分享的内容也存在着很多我自己的一些理解,有理解不到位的,还包含,并且指出不足之处!!!!!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。