Общие сведения о спецификациях шаблонов
До сегодняшнего времени развертывание шаблонов Azure Resource Manager (шаблоны ARM) в Azure выполнялось с помощью Bicep или JSON. Создается файл шаблона, а затем отправляется в Azure для развертывания. Azure Resource Manager выполняет создание или реконфигурацию ваших ресурсов.
При работе со спецификациями шаблонов по-прежнему шаблон отправляется в Azure. Но вместо развертывания Azure сохраняет его в будущем. Можно позже вернуться и сообщить Azure о необходимости развертывания спецификации шаблона. Можно даже многократно использовать одну и ту же спецификацию шаблона для развертывания других сред.
Зачем использовать спецификации шаблонов?
В вашей компании вы создали множество повторно используемых шаблонов, включая:
Имя шаблона | Description |
---|---|
Storage account | Развертывает учетную запись хранения и применяет проверку подлинности Microsoft Entra. |
Учетная запись Cosmos DB | Развертывает учетную запись Azure Cosmos DB с включенным непрерывным резервным копированием. |
Виртуальная сеть | Развертывает виртуальную сеть, которая имеет правильную конфигурацию для взаимодействия с основной сетью концентратора. |
Веб-сайт для запуска продукта | Развертывает план Службы приложений Azure, приложение и учетную запись хранения для веб-сайтов, на которых публикуются новые игрушки. |
Спецификации шаблонов — отличный способ создания библиотеки повторно используемых шаблонов ARM для распространенных сценариев в вашей организации. Эксперт может создать шаблон с предварительно настроенным ресурсом или набором ресурсов. Далее этот эксперт может опубликовать его как спецификацию шаблона, чтобы другие люди в организации могли выполнить его развертывание.
Можно использовать спецификации шаблонов, чтобы убедиться, что ресурсы, создаваемые вашей командой, настроены в соответствии с вашими требованиями. Например, можно опубликовать спецификацию шаблона, например шаблон учетной записи хранения, описанный ранее. Затем всякий раз, когда любой пользователь в вашей организации развертывает спецификацию шаблона, вы можете быть уверены, что они создают учетную запись хранения с правильными параметрами проверки подлинности.
Спецификации шаблонов хранятся в Azure, поэтому вам не нужно самостоятельно обслуживать общие файлы шаблонов. Вы можете управлять тем, кто может использовать и изменять спецификации шаблона с помощью элементов управления доступом на основе ролей Azure. Без спецификаций шаблонов нужно выбрать место хранения, например хранилище Azure, для хранения файлов шаблонов. Также необходимо контролировать доступ самостоятельно.
Сравнение спецификаций шаблонов с модулями Bicep
При работе с Bicep можно создавать повторно используемые модули для определения наборов ресурсов в одном файле. Спецификации шаблонов и модули Bicep предназначены для обеспечения повторного использования для шаблонов, но они оптимизированы для разных целей.
- Спецификации шаблонов предназначены для развертывания в виде полного шаблона. Спецификации шаблонов можно развернуть с помощью портал Azure и инструментов, таких как Azure CLI и Azure PowerShell. Модули Bicep предназначены для объединения в более крупное развертывание. Однако если вы создаете спецификацию шаблона, Bicep также позволяет использовать его в качестве модуля, если вы хотите.
- Спецификации шаблонов обеспечивают возможности управления версиями и доступом. Необходимо самостоятельно управлять версиями и безопасностью вашего кода Bicep.
- Спецификации шаблонов хранятся в Azure как ресурс. Необходимо хранить модули Bicep там, где вы сможете осуществлять за ними контроль, например, в системе контроля версий, такой как Git, или в вашей файловой системе.
- Модули Bicep сохраняют весь исходный код Bicep, включая комментарии, символьные имена и пробелы. При создании спецификации шаблона с помощью Bicep код Bicep преобразуется в JSON, и часть этих данных теряется. Поэтому необходимо сохранить исходный файл Bicep еще в каком-либо другом расположении.
При выборе между спецификациями шаблонов и модулями Bicep можно придерживаться следующего эмпирического правила: если шаблон будет развертываться в существующем виде по всей организации, вероятно, подойдут спецификации шаблонов. Но если вы планируете использовать этот шаблон в нескольких родительских шаблонах, то лучше выбрать модули Bicep.
Принцип работы спецификаций шаблонов
Спецификация шаблона — это ресурс Azure, как и учетная запись хранения или виртуальная машина. Она должна создаваться в группе ресурсов, хотя сам шаблон может развертывать ресурсы в подписке, области управления или области клиента.
При работе со спецификациями шаблонов создается два ресурса.
- Спецификация шаблона является ресурсом контейнера. Она содержит одну или несколько версий.
- Версии спецификаций шаблонов содержат фактический шаблон для развертывания.
Вы работаете со спецификациями и версиями шаблонов, используя соответствующие идентификаторы ресурсов. Ниже приведен пример идентификатора ресурса для спецификации шаблона.
/subscriptions/f0750bbe-ea75-4ae5-b24d-a92ca601da2c/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS
Версия — это дочерний ресурс спецификации шаблона. Он имеет идентификатор ресурса, как в следующем примере:
/subscriptions/f0750bbe-ea75-4ae5-b24d-a92ca601da2c/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS/versions/1.0
При развертывании спецификации шаблона необходимо указать идентификатор ресурса версии спецификации шаблона.
Ниже приведена иллюстрация рабочего процесса, который вы следуете при использовании спецификаций шаблонов:
Шаблон создается привычным образом. Шаблон для спецификации шаблона создается как обычно. Вы объявляете ресурсы, создаете параметры и переменные, используете функции и пр.
Когда шаблон готов, создается ресурс спецификации шаблона. Затем выполняется публикация созданного шаблона в спецификации шаблона в виде версии. Инструменты, используемые для создания спецификаций шаблонов, позволяют выполнять эти действия во всех операциях. Спецификация шаблона хранится в Azure как ресурс после публикации. Можно просматривать спецификацию шаблона, редактировать и управлять доступом к ней, т. е. выполнять такие же операции, как и при работе с любым другим ресурсом Azure. Можно опубликовать спецификацию шаблона со своего локального компьютера или из конвейера развертывания.
Каждый раз, когда требуется развернуть спецификацию шаблона, вы обращаетесь к идентификатору ресурса версии спецификации шаблона из развертывания. Можно развернуть его в любой группе ресурсов или даже в другой подписке или области. Azure считывает спецификацию шаблона и использует ее как шаблон для развертывания.