Управление спецификацией шаблона

Завершено

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

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

Примечание.

Команды в этом уроке демонстрируют основные понятия. На этом этапе не выполняйте команды. Вскоре вы поупражняетесь с полученными знаниями.

Добавление версий

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

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

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

Схемы управления версиями

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

  • В качестве номеров версий используются основные целые числа. Например, первая версия может называться 1, вторая версия — 2 и так далее.
  • Для обозначения номеров версий можно использовать даты. Например, если вы публикуете первую версию спецификации шаблона 16 января 2021 года, вы можете назвать версию 2021-01-16 (используя формат гггг-мм-дд). При публикации другой версии 3 марта можно назвать ее 2021-03-03.
  • Семантическое управление версиями — это система управления версиями, часто используемая в программном обеспечении, где один номер версии состоит из нескольких частей. Каждая часть обозначает разную информацию о характере изменения.

Несмотря на то что вы можете использовать любую схему управления версиями, рекомендуется выбрать то, что можно сортировать в понятном порядке, например числа и даты.

Примечание.

Azure хранит дату создания каждой версии. Даже если вы не используете управление версиями по дате, по-прежнему можно видеть эту информацию.

Политика управления версиями

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

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

Ниже приведена политика управления версиями, которая является эффективной.

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

Совет

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

Описание версий

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

Внесение изменений в спецификацию шаблона

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

Например, чтобы перечислить версии спецификации шаблона, используйте командлет Get-AzTemplateSpec.

Get-AzTemplateSpec `
  -ResourceGroupName MyResourceGroup `
  -Name MyTemplateSpec

Этот же командлет используется для просмотра версии спецификации шаблона. Добавьте параметр -Version, чтобы получить подробные сведения о версии.

Get-AzTemplateSpec `
  -ResourceGroupName MyResourceGroup `
  -Name MyTemplateSpec `
  -Version 1.0

Можно получить доступ к шаблону JSON, прочитав свойство MainTemplate из массива Versions.

(Get-AzTemplateSpec `
  -ResourceGroupName MyResourceGroup `
  -Name MyTemplateSpec `
  -Version 1.0 `
).Versions[0].MainTemplate

Например, чтобы получить список версий спецификации шаблона, используйте команду az ts show.

az ts show \
  --resource-group MyResourceGroup \
  --name MyTemplateSpec

Эта же команда используется для просмотра версии спецификации шаблона. Добавьте аргумент --version, чтобы получить подробные сведения о версии.

az ts show \
  --resource-group MyResourceGroup \
  --name MyTemplateSpec \
  --version 1.0

Шаблон JSON включается в выходные данные.

Примечание.

При публикации файла Bicep в спецификации шаблона, он преобразуется в формат JSON. Исходный файл Bicep невозможно просмотреть, поэтому рекомендуется сохранять его в другом месте.

Чтобы обновить существующую спецификацию шаблона, используйте командлет Set-AzTemplateSpec. Например, этот командлет можно использовать для применения исправления к уже опубликованной версии:

Set-AzTemplateSpec `
  -ResourceGroupName MyResourceGroup `
  -Name MyTemplateSpec `
  -Version 1.0 `
  -TemplateFile azuredeploy.json

Также можно удалить версию спецификации шаблона с помощью командлета Remove-AzTemplateSpec.

Remove-AzTemplateSpec `
  -ResourceGroupName MyResourceGroup `
  -Name MyTemplateSpec `
  -Version 1.0

Чтобы обновить существующую спецификацию шаблона, используйте команду az ts update. Например, эту команду можно использовать для применения исправления к уже опубликованной версии:

az ts update \
  --resource-group MyResourceGroup \
  --name MyTemplateSpec \
  --version 1.0 \
  --template-file azuredeploy.json

Также можно удалить версию спецификации шаблона с помощью команды az ts delete.

az ts delete \
  --resource-group MyResourceGroup \
  --name MyTemplateSpec \
  --version 1.0

Экспорт шаблона спецификации

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

Совет

Если спецификация шаблона содержит связанные шаблоны, то при экспорте спецификации шаблона связанные шаблоны также загружаются. При этом сохраняется структура папок.

Важно!

При публикации файла Bicep как спецификации шаблона код Bicep преобразуется в шаблон JSON. В процессе преобразования кода Bicep в JSON часть данных из файла Bicep удаляется. Например, комментарии, символьные имена ресурсов и порядок, в котором определяются ресурсы, могут отсутствовать или отличаться в файле JSON. Это означает, что не получится легко опубликовать файл Bicep как спецификацию шаблона, а затем вернуть исходный файл Bicep (эта возможность называется многократным преобразованием). Рекомендуется хранить копию исходного кода Bicep в репозитории кода, например Git, особенно при работе со спецификациями шаблонов.

Чтобы экспортировать спецификацию шаблона, используйте командлет Export-AzTemplateSpec. Используйте значение -OutputFolder, чтобы указать, где требуется сохранять файлы шаблона.

Export-AzTemplateSpec `
  -ResourceGroupName MyResourceGroup `
  -Name MyTemplateSpec `
  -Version 1.0 `
  -OutputFolder ./mytemplate

Чтобы экспортировать спецификацию шаблона, используйте команду az ts export. Используйте значение --output-folder, чтобы указать, где требуется сохранять файлы шаблона.

az ts export \
  --resource-group MyResourceGroup \
  --name MyTemplateSpec \
  --version 1.0 \
  --output-folder ./mytemplate

Управление доступом к спецификации шаблона

Поскольку спецификации шаблонов являются ресурсами Azure, они используют управление идентификацией и доступом (IAM) Azure. Когда пользователь развертывает спецификацию шаблона, Azure проверяет, есть ли у пользователя доступ, чтобы сначала прочитать спецификацию шаблона.

Примечание.

Чтобы развернуть спецификацию шаблона, пользователю требуется следующее.

  • Доступ для чтения спецификации шаблона.
  • Доступ для развертывания в группе ресурсов или другой области, в которой запрашивается развертывание.

Azure проверяет оба условия перед началом развертывания.