Если вы будете следовать за мной на dev.to, вы уже знаете, что я люблю бицепс, азаронный новый диспетчер ресурсов шаблон DSL. До вчерашнего дня его можно считать экспериментальным. Вы можете использовать его, чтобы проверить и играть с ним, но вы не можете использовать его для рабочей нагрузки. Но начиная с версии, 0.3.1, BICEP поддерживается планами поддержки Microsoft. Одна из функций, которые мы ждали, петли. Функция петли из коробки. Как использовать петли с бицепсом? Прежде чем ответить на этот вопрос, нам нужно посмотреть, как петли используются в шаблонах ARM. Вы можете увидеть страницу посвященной страницы Microsoft DOC, Итерация ресурсов в шаблонах ARM Отказ Как создать итерацию ресурсов с бицепсом. Давайте попробуем с примером. Представьте себе, что вам нужно развернуть несколько серверов Azure PostgreSQL. Между ними мало различий, название и количеством необходимых хранилищ. Итак, вы знаете, что вам нужно создать массив, хранящий несколько объектов, содержащих имя сервера и необходимое хранилище.
var azPgSqlServers = [ { name: 'my-prd-srv' storageMb: 512000 } { suffix: 'my-dev-srv' storageMb: 256000 } ] param sqlAdminName string param sqlAdminPassword string { secure: true }
Чтобы соблюдать массив AZSQLSERVER, вам понадобится ключевые слова «для» и «в разделе» с [] в разделе «Для», вы определяете переменную, которую вы можете использовать в ресурсе, определяющий внутри []. Часть «В» позволяет выбрать переменную или параметр, который вы хотите повторить.
resource azServer 'Microsoft.DBForPostgreSQL/servers@2017-12-01' = [for srv in azPgSqlServers: { name: srv.name location: 'westeurope' sku: { name: 'GP_Gen5_2' tier: 'GeneralPurpose' family: 'Gen5' capacity: 2 } properties: { storageProfile: { storageMB: srv.storageMb backupRetentionDays: 30 geoRedundantBackup: 'Enabled' storageAutogrow: 'Enabled' } version: '11' createMode: 'Default' administratorLogin: sqlAdminName administratorLoginPassword: sqlAdminPassword } }]
После составления файла бицепса с помощью BiceP Build результируемый файл json будет иметь ресурс dbforpostgresql/серверов с элементом копирования.
Если вы осторожно посмотрите на файл JSON, вы также найдете новый элемент, метаданные. Объект метаданных шаблона в шаблоне ARM позволяет добавить любую информацию. Бицепс Добавить объект «_Generator» с версией BICEP, шаблон HASH и названием генератора, BICEP
"_generator": { "name": "bicep", "version": "0.3.1.62928", "templateHash": "15593105574464543895" }
Эта информация может быть полезна, если вам нужно отладить или просматривать шаблоны позже.
Другим недостающим произведением в предыдущей версии BICEP был условным развертыванием. Вы можете проверить это Microsoft Doc Page или Этот блог пост Отказ
С версией 0.3.1 можно добавить условие в развертывание ресурсов. Представьте себе, что вам нужно развернуть VNET, только если состояние будет выполнено. В шаблоне руки вам нужно будет использовать ключевое слово «Условие» с логическим значением. С BICEP вам просто нужно добавить ключевое слово «если», за которым следует булевое выражение.
param vnetName string param vnetPrefix string param vnetLocation string = resourceGroup().location param deployVnet bool = true // VNET resource vnet 'Microsoft.Network/virtualNetworks@2020-06-01' = if(deployVnet) { name: vnetName location: vnetLocation properties: { addressSpace: { addressPrefixes: [ vnetPrefix ] } subnets: [ { name: 'defaultSubnet' properties: { addressPrefix: vnetPrefix } } ] } }
В этом примере параметр DeployVnet является логией. Он используется в выражении «если» для ресурса VNet. Если параметр DeployVnet TRUE, VNET развернут, если ложное развертывание пропускается. Вы можете использовать любое выражение, возвращающее логическое значение в разделе IF. Это включает в себя двоичное, равенство, реляционные выражения. Компиляция файла шаблона будет переводить в эксплуатацию IF в оператор условия ARM.
Другая возможность, предлагаемая этой новой версией, — это возможность перевести шаблон JSON в файл BICEP. Эта возможность называется декомпиляцией. Вы принимаете файл JSON и используете декомпилировать вместо сборки, чтобы создать файл BICEP.
Decompile Bicep./art template.json Но есть некоторые ограничения, простые шаблоны хорошо работают, а также шаблоны с условием. Например, ключевое слово копирования еще не реализовано. Декомпилированные шаблоны должны быть отправной точкой, а не окончательным путешествием.
BICEP V0.3 теперь готов к производству, но есть еще больше. Бицепс должен продолжать укреплять, а команда доставит новые функции в будущем. Если у вас есть время, посмотрите на сеанс от MS LEGITE 2021 Узнайте все о следующем поколении шаблонов руки Отказ
Оригинал: «https://dev.to/omiossec/azure-bicep-v0-3-1-dlg»