Общие сведения о спецификациях шаблонов

Завершено

До сегодняшнего времени развертывание шаблонов 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

При развертывании спецификации шаблона необходимо указать идентификатор ресурса версии спецификации шаблона.

Ниже приведена иллюстрация рабочего процесса, который вы следуете при использовании спецификаций шаблонов:

Diagram that shows the workflow for using template specs.

Шаблон создается привычным образом. Шаблон для спецификации шаблона создается как обычно. Вы объявляете ресурсы, создаете параметры и переменные, используете функции и пр.

Когда шаблон готов, создается ресурс спецификации шаблона. Затем выполняется публикация созданного шаблона в спецификации шаблона в виде версии. Инструменты, используемые для создания спецификаций шаблонов, позволяют выполнять эти действия во всех операциях. Спецификация шаблона хранится в Azure как ресурс после публикации. Можно просматривать спецификацию шаблона, редактировать и управлять доступом к ней, т. е. выполнять такие же операции, как и при работе с любым другим ресурсом Azure. Можно опубликовать спецификацию шаблона со своего локального компьютера или из конвейера развертывания.

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