Что такое 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 в Visual Studio с расширением Bicep для Visual Studio.
Повторяющиеся результаты. Развертывание инфраструктуры на протяжении всего жизненного цикла разработки с уверенностью в том, что ресурсы развертываются последовательно. Файлы Bicep являются идемпотентными, что означает, что вы можете развертывать один и тот же файл несколько раз и получать одинаковые типы ресурсов в одном состоянии. Вы можете разработать один файл, представляющий требуемое состояние вместо разработки нескольких отдельных файлов для представления обновлений. Например, следующий файл создает учетную запись хранения. Если вы развертываете этот шаблон и учетную запись хранения, если указанные свойства уже существуют, изменения не вносятся:
Оркестрация. Не следует беспокоиться о сложности операций упорядочивания. Resource Manager управляет развертыванием межзависимых ресурсов, чтобы они были созданы в правильном порядке. По возможности Resource Manager развертывает ресурсы параллельно, что помогает развертываниям выполняться быстрее, чем последовательные развертывания. Вы развертываете файл с помощью одной, а не нескольких императивных команд.
Модульность. Используйте модули для сегментирования кода Bicep в управляемые части. Модули помогают повторно использовать код и упростить разработку. Модуль развертывает набор связанных ресурсов. Добавьте модуль в файл Bicep, если необходимо развернуть эти ресурсы.
Интеграция со службами Azure: Bicep интегрируется со службами Azure, такими как Политика Azure, спецификации шаблонов и Azure Blueprints.
Предварительные версии изменений. Перед развертыванием Bicep-файла можно использовать операцию what-if для предварительного просмотра изменений. Операция "что если" показывает, какие ресурсы следует создавать, обновлять или удалять, а также какие-либо свойства ресурсов для изменения. Он также проверяет текущее состояние среды и устраняет необходимость управления этим состоянием.
Нет файлов состояний или состояний для управления: Azure сохраняет все состояние. Вы можете сотрудничать с другими пользователями и быть уверены в том, что обновления обрабатываются должным образом.
Нет затрат и открытый код: так как Bicep бесплатный, вам не нужно платить за премиум возможности. служба поддержки Майкрософт поддерживает его.
Начало работы
Чтобы приступить к работе с Bicep, выполните описанные ниже действия.
- Установите средства. Дополнительные сведения см. в статье "Настройка сред разработки и развертывания Bicep" или использование репозитория devcontainer/Codespaces для получения предварительно настроенной среды разработки.
- Выполните краткое руководство и модули 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):
Откройте портал Azure.
Щелкните значок "Поддержка и устранение неполадок" в правом верхнем углу.
В кратком описании проблемы введите шаблон ARM и нажмите кнопку "Перейти".
В какой службе возникла проблема?выберите портал в разделе "Мониторинг и управление", а затем нажмите кнопку "Далее".
Выберите подписку и нажмите кнопку Далее.
Выберите "Проблема с шаблонами ARM" и нажмите кнопку "Далее".
Следующие шаги
Сведения о начале работы см. в кратком руководстве.
Ответы на распространенные вопросы см. в разделе Часто задаваемые вопросы о Bicep.