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


Что такое Bicep?

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

  • Интерфейс разработки: создание файлов Bicep с помощью расширение 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'
    }
    

  • Оркестрация. Не следует беспокоиться о сложности операций упорядочивания. 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 см. в разделе "Декомпилирование шаблона ARM" в 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 и Бицеп для шаблонов.

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

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

Поддержка

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

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

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

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

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

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

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

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

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

Сведения о начале работы см. в кратком руководстве.

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