Что такое Bicep?
Теперь, когда ваша команда понимает, как работает Azure Resource Manager, вы решите использовать шаблоны ARM для подготовки ресурсов. Вы понимаете, что вы можете создавать шаблоны ARM двумя способами: с помощью JSON или с помощью Bicep. Вы хотите узнать больше о шаблонах Bicep, чтобы принять обоснованное решение о том, какой язык использовать.
В этом уроке вы узнаете о языке шаблона Bicep и преимуществах разработки шаблонов.
Язык Bicep
Bicep — это язык шаблона Resource Manager, который используется для декларативного развертывания ресурсов Azure. Bicep предназначен для определенного сценария или домена, что делает его языком для конкретного домена. Bicep не предназначен для использования в качестве стандартного языка программирования для написания приложений. Bicep используется только для создания шаблонов Resource Manager. Bicep прост для понимания и освоения, независимо от вашего опыта работы с другими языками. В шаблонах Bicep допускаются все типы ресурсов, версии API и свойства.
Примечание.
Если вы ранее изучили использование шаблонов JSON, возможно, вы заметили, что Bicep упрощает создание шаблона. Он предоставляет более простой для понимания синтаксис, лучшую поддержку модульности и многократно используемого кода, а также повышенную безопасность типа. Для создания шаблона ARM с помощью JSON нужны сложные выражения, а окончательный результат может быть очень подробным.
Преимущества Bicep
Для разработки шаблонов Bicep предоставляет множество улучшений по сравнению с JSON, включая приведенные ниже.
Более простой синтаксис. Bicep предоставляет более простой синтаксис для написания шаблонов. Вы можете напрямую ссылаться на параметры и переменные без использования сложных функций. Чтобы объединить значения имен и других элементов, используется интерполяция строк вместо объединения. Вы можете ссылаться на свойства ресурса напрямую, используя его символьное имя вместо сложных ссылочных инструкций. Эти улучшения синтаксиса помогают и в разработке, и в чтении шаблонов Bicep.
Модули. Вы можете разбивать сложные развертывания шаблонов на небольшие файлы модулей и ссылаться на них в основном шаблоне. Эти модули обеспечивают более простое управление и большую возможность повторного использования. Вы даже можете поделиться своими модулями со своей командой.
Автоматическое управление зависимостями. В большинстве случаев Bicep автоматически обнаруживает зависимости между ресурсами. Этот процесс устраняет часть работы, связанную с разработкой шаблонов.
Проверка типа и IntelliSense. Расширение Bicep для функций Visual Studio Code имеет широкие возможности проверки и IntelliSense для всех определений API типов ресурсов Azure. Эта функция упрощает процесс разработки.
Рассмотрим следующий пример шаблона Bicep, который определяет учетную запись хранения. Шаблон автоматически создает имя учетной записи хранения. После развертывания идентификатор ресурса возвращается в качестве выходных данных пользователю, который выполняет шаблон.
param location string = resourceGroup().location
param namePrefix string = 'storage'
var storageAccountName = '${namePrefix}${uniqueString(resourceGroup().id)}'
var storageAccountSku = 'Standard_RAGRS'
resource storageAccount 'Microsoft.Storage/storageAccounts@2203-05-01' = {
name: storageAccountName
location: location
kind: 'StorageV2'
sku: {
name: storageAccountSku
}
properties: {
accessTier: 'Hot'
supportsHttpsTrafficOnly: true
}
}
output storageAccountId string = storageAccount.id