Рубрики
Uncategorized

Azure Bicep V0.3.1

Если вы будете следовать за мной на dev.to, вы уже знаете, что я люблю бицепс, азума новый менеджер ресурсов Templa … Теги с лазурным, IAC, DevOps, Azuredevops.

Если вы будете следовать за мной на 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»