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

Завершено

На данный момент вы привыкли развертывать шаблоны Azure Resource Manager (шаблоны ARM) в Azure с помощью Bicep или JSON. Вы создаете файл шаблона, а затем отправляете его в Azure, создав развертывание. Azure Resource Manager оркеструет создание или перенастройку ресурсов.

При работе с спецификациями шаблонов вы по-прежнему отправляете шаблон в Azure. Вместо развертывания Azure сохраняет его для вашего использования в будущем. Затем вы можете вернуться позже и поручить Azure развернуть спецификацию шаблона. Можно даже использовать одну и ту же спецификацию шаблона неоднократно для развертывания дополнительных сред.

Зачем использовать спецификации шаблонов?

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

Имя шаблона Описание
Учетная запись хранения Развертывает учетную запись хранения и применяет проверку подлинности 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS

Версия — это дочерний ресурс спецификации шаблона. Он имеет идентификатор ресурса, как в следующем примере:

/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS/versions/1.0

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

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

схема, показывающая рабочий процесс для использования спецификаций шаблонов.

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

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

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