Что такое Bicep?

Bicep — это предметно-ориентированный язык (DSL), который использует декларативный синтаксис для развертывания ресурсов Azure. В файле Bicep необходимо определить инфраструктуру, которую вы хотите развернуть в Azure. Этот файл будет использоваться на протяжении всего жизненного цикла разработки для многократного развертывания инфраструктуры. Ресурсы развертываются согласованно.

Bicep обеспечивает краткий синтаксис, надежную безопасность типов и поддержку повторного использования кода. Bicep предоставляет лучшие в своем классе возможности для разработки решений Azure типа инфраструктура как код.

Преимущества Bicep

Bicep обеспечивает следующие преимущества:

  • Поддержка всех типов ресурсов и версий API: Bicep без дополнительной конфигурации поддерживает все предварительные версии и версии GA для служб Azure. Как только поставщик ресурсов вводит новые типы ресурсов и версии API, их можно использовать в файле Bicep. Чтобы использовать новые службы, не нужно ждать обновления средств.

  • Простой синтаксис. По сравнению с эквивалентным шаблоном JSON файлы Bicep более краткие и удобочитаемые. Bicep не требует наличия знаний о языках программирования. Синтаксис Bicep является декларативным и указывает, какие ресурсы и свойства ресурсов необходимо развернуть.

    В следующих примерах демонстрируется разница между файлом Bicep и эквивалентным шаблоном JSON. Оба этих примера развертывают учетную запись хранения.

    param location string = resourceGroup().location
    param storageAccountName string = 'toylaunch${uniqueString(resourceGroup().id)}'
    
    resource storageAccount 'Microsoft.Storage/storageAccounts@2021-06-01' = {
      name: storageAccountName
      location: location
      sku: {
        name: 'Standard_LRS'
      }
      kind: 'StorageV2'
      properties: {
        accessTier: 'Hot'
      }
    }
    

  • Интерфейс разработки: создание файлов Bicep с помощью расширение Bicep для VS Code обеспечит первоклассное удобство разработки. Редактор обеспечивает расширенную безопасность типов, интеллектуальный анализ и проверку синтаксиса.

    Пример разработки файла Bicep

    Вы также можете создавать файлы Bicep в Visual Studio с расширением Bicep для Visual Studio.

  • Повторяющиеся результаты. Выполняйте повторное развертывание инфраструктуры на протяжении всего цикла разработки и будьте уверены, что ресурсы развертываются согласованным образом. Файлы Bicep являются идемпотентными, то есть вы сможете многократно развертывать один и тот же файл и получать те же типы ресурсов в том же состоянии. Можно разработать один файл, представляющий требуемое состояние, и обойтись без большого числа отдельных шаблонов для представления обновлений.

  • Оркестрация. Не следует беспокоиться о сложности операций упорядочивания. Resource Manager организует развертывание взаимозависимых ресурсов так, чтобы они создавались в правильном порядке. По возможности Resource Manager развертывает ресурсы параллельно, поэтому процедуры развертывания заканчиваются быстрее, чем в случае последовательного развертывания. Файл развертывается с помощью одной команды, и вам не придется выполнять большую последовательность императивных команд.

    Сравнение развертывания Bicep

  • Модульность: можно разбить код Bicep на управляемые части с помощью модулей. Модуль развертывает набор связанных ресурсов. Модули позволяют повторно использовать код и упростить разработку. Добавьте модуль в файл Bicep в любое время, когда потребуется развертывание этих ресурсов.

  • Интеграция со службами Azure: возможность интеграции Bicep со службами Azure, такими как политика Azure, спецификации шаблонов и схемы.

  • Предварительный просмотр изменений. Перед развертыванием файла Bicep можно применить операцию "что если", чтобы получить предварительную версию изменений. Операция "что если" позволяет увидеть, какие ресурсы будут созданы, обновлены или удалены, а также любые свойства ресурсов, которые будут изменены. Операция "что если" проверяет текущее состояние среды и устраняет необходимость в управлении состоянием.

  • Нет состояний или файлов состояния для управления: все состояния хранятся в Azure. Пользователи могут работать в команде и быть уверенными в том, что их обновления обрабатываются должным образом.

  • Без затрат и открытого кода: Bicep — полностью бесплатный инструмент. Пользователю не нужно платить за возможности уровня "Премиум". Осуществляется поддержка службой поддержки корпорации Майкрософт.

Начало работы

Чтобы приступить к работе с Bicep, выполните описанные ниже действия.

  1. Установите средства. См. статью Настройка сред разработки и развертывания Bicep. Также для получения предварительно настроенной среды разработки можно использовать VS Code Devcontainer/репозиторий Codespaces.
  2. Изучите руководство по быстрому запуску и модули Microsoft Learn по Bicep.

Сведения о декомпиляции существующего шаблона ARM в Bicep см. в статье Декомпиляция шаблона ARM в формате JSON в файл Bicep. Вы можете использовать Тестовую площадку Bicep для сравнительного просмотра файла Bicep и его эквивалента в формате JSON.

Дополнительные сведения о ресурсах, доступных в файле Bicep, см. в разделе Справочник по ресурсам Bicep

Примеры Bicep можно найти в репозитории GitHub для Bicep.

О языке

Язык Bicep не предназначен для создания приложений в качестве общего языка программирования. В файле Bicep ресурсы и свойства ресурсов Azure просто объявляются вместо использования последовательности программных команд для создания ресурсов.

Для отслеживания состояния работы Bicep см. репозиторий проекта Bicep.

Дополнительные сведения о Бицеп приведены в следующем видео.

Bicep можно использовать вместо JSON для разработки шаблонов Azure Resource Manager (шаблоны ARM). Синтаксис JSON для создания шаблона ARM может быть излишне подробным и требовать сложных выражений. Синтаксис Bicep является более простым и улучшает процесс разработки. Bicep — это прозрачная абстракция кода JSON шаблонов ARM, обеспечивающая все возможности этих шаблонов. Во время развертывания Bicep CLI преобразует файл Bicep в шаблон ARM в формате JSON.

Типы ресурсов, версии API и свойства, допустимые в шаблоне ARM, допустимы и в файле Бицеп.

Бицеп предлагает более простой и краткий синтаксис по сравнению с эквивалентным JSON. Выражения в квадратных скобках [...] не используются. Вместо этого напрямую вызываются функции и получаются значения параметров и переменных. Каждому развернутому ресурсу присваивается символьное имя, которое упрощает ссылку на этот ресурс в шаблоне.

Полное сравнение синтаксиса приведено в разделе Сравнение JSON и Бицеп для шаблонов.

Бицеп автоматически управляет зависимостями между ресурсами. Можно избежать настройки dependsOn, когда символическое имя ресурса используется в объявлении другого ресурса.

Структура файла Бицеп более гибка, чем шаблон JSON. Параметры, переменные и выходные данные можно объявлять в любом месте файла. В JSON необходимо объявить все параметры, переменные и выходные данные в соответствующих разделах шаблона.

Дальнейшие действия

Приступите к изучению краткого руководства.

Ответы на распространенные вопросы см. в разделе Часто задаваемые вопросы о Bicep.