Поделиться через


Что такое Bicep?

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

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

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

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

  • Поддержка всех типов ресурсов и версий API: Bicep сразу же поддерживает все предварительные версии и общедоступные версии для служб 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@2023-05-01' = {
      name: storageAccountName
      location: location
      sku: {
        name: 'Standard_LRS'
      }
      kind: 'StorageV2'
      properties: {
        accessTier: 'Hot'
      }
    }
    

  • Опыт разработки: Когда вы используете расширение Bicep для VS Code, вы получаете первоклассный опыт разработки. Редактор обеспечивает расширенную безопасность типов, IntelliSense и проверку синтаксиса.

    Снимок экрана создания файла Bicep в режиме реального времени

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

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

    param location string = resourceGroup().location
    
    resource mystore 'Microsoft.Storage/storageAccounts@2023-05-01' = {
      name: 'mystorageaccount'
      location: location
      sku: {
        name: 'Standard_LRS'
      }
      kind: 'StorageV2'
    }
    

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

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

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

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

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

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

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

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

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

  1. Установите инструменты. Дополнительные сведения см. в статье «Настройка сред разработки и развертывания Bicep», или используйте репозиторий devcontainer/Codespaces для получения предварительно настроенной среды разработки.

  2. Выполните краткое руководство и модули Learn для Bicep.

Сведения о декомпиляции существующего шаблона Resource Manager в Bicep смотрите в статье Decompile a JSON Azure Resource Manager template to Bicep. С помощью Bicep Playground можно просмотреть Bicep и его эквивалент, JSON, параллельно.

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

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

О языке

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

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

Чтобы узнать о Bicep, просмотрите следующее видео:

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

Типы ресурсов, версии API и свойства, допустимые в шаблоне Resource Manager, допустимы в файле Bicep.

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

Полное сравнение синтаксиса см. в Сравнение JSON и Bicep для шаблонов.

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

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

Получить поддержку

Ниже приведены шаги по открытию запроса в службу поддержки для проблем, связанных с шаблоном Azure Resource Manager (ARM):

  1. Откройте портал Azure.

  2. Щелкните значок "Поддержка и устранение неполадок" в правом верхнем углу.

  3. В кратком описании проблемы введите шаблон ARM и нажмите кнопку "Перейти".

  4. В какой службе возникла проблема?выберите портал в разделе "Мониторинг и управление", а затем нажмите кнопку "Далее".

  5. Выберите подписку и нажмите кнопку Далее.

  6. Выберите "Проблема с шаблонами ARM" и нажмите кнопку "Далее".

    Снимок экрана: запрос на поддержку шаблона ARM.

Следующие шаги