Импорт и экспорт определений схемы с помощью PowerShell

Important

Azure Blueprints (предварительная версия) будет выведена из эксплуатации 31 января 2027 года, при этом поэтапный вывод из эксплуатации начнется 31 июля 2026 года. Перенесите существующие определения и назначения схем в стеки развертывания (рекомендуется) и спецификации шаблонов. Артефакты схемы преобразуются в JSON-шаблоны ARM или Bicep-файлы, которые используются для определения стеков развертывания. Сведения о полном поэтапном графике, последствиях и часто задаваемых вопросах см. в разделе О прекращении поддержки Azure Blueprints или https://aka.ms/AzureBlueprintsRetirement. Сведения о том, как создать артефакт в качестве ресурса ARM, см. в статье:

Azure Blueprints можно полностью управлять с помощью портала Azure. По мере того как организации развивают использование Azure Blueprints, им следует начать рассматривать определения Azure Blueprints как объекты, управляемые как код. Эта концепция часто называется инфраструктурой как код (IaC). Обработка определений схемы в качестве кода предоставляет дополнительные преимущества, помимо того, что предлагает портал Azure. К этим преимуществам относятся следующие:

  • Совместное использование определений схемы
  • Резервное копирование определений схемы
  • Повторное использование определений схем в разных арендаторах или подписках
  • Размещение определений схемы в системе управления версиями
    • Автоматическое тестирование определений схемы в тестовых средах
    • Поддержка конвейеров непрерывной интеграции и непрерывного развертывания (CI/CD)

Независимо от ваших причин, управление определениями схемы в качестве кода имеет преимущества. В этой статье показано, как использовать команды Import-AzBlueprintWithArtifact и Export-AzBlueprintWithArtifact в модуле Az.Blueprint.

Prerequisites

В этой статье предполагается наличие среднего уровня знаний по работе с Azure Blueprints. Если вы еще этого не сделали, ознакомьтесь со следующими статьями:

Если модуль еще не установлен, выполните инструкции из раздела Добавление модуля Az.Blueprint, чтобы установить модуль Az.Blueprint из коллекции коллекция PowerShell и проверить его.

Структура папок определения схемы

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

Important

Если значение не передается параметру Import-AzBlueprintWithArtifact командлета, используется имя папки, в которой хранится определение схемы.

Наряду с определением схемы, которое должно называться blueprint.json, существуют артефакты, из которых состоит это определение схемы. Каждый артефакт должен находиться в подпапке с именем artifacts. Структура определения схемы в виде JSON-файлов в папках должна выглядеть следующим образом:

.
|
|- MyBlueprint/  _______________ # Root folder name becomes default name of blueprint definition
|  |- blueprint.json  __________ # The blueprint definition. Fixed name.
|
|  |- artifacts/  ______________ # Subfolder for all blueprint artifacts. Fixed name.
|     |- artifact.json  ________ # Blueprint artifact as JSON file. Artifact named from file.
|     |- ...
|     |- more-artifacts.json

Экспорт определения схемы

Действия по экспорту определения схемы просты. Экспорт определения схемы может быть полезен для совместного использования, резервного копирования или размещения в системе управления версиями.

  • Схема [обязательный]
    • Указывает определение схемы
    • Использование Get-AzBlueprint для получения эталонного объекта
  • OutputPath [обязательно]
    • Указывает путь для сохранения JSON-файлов определения шаблона в
    • Выходные файлы находятся в вложенной папке с именем определения схемы.
  • Версия (необязательно)
    • Указывает версию для вывода, если эталонный объект Blueprint содержит ссылки на несколько версий.
  1. Получите ссылку на определение схемы для экспорта из подписки, представленной как {subId}:

    # Login first with Connect-AzAccount if not using Cloud Shell
    
    # Get version '1.1' of the blueprint definition in the specified subscription
    $bpDefinition = Get-AzBlueprint -SubscriptionId '{subId}' -Name 'MyBlueprint' -Version '1.1'
    
  2. Используйте командлет Export-AzBlueprintWithArtifact для экспорта указанного определения шаблона:

    Export-AzBlueprintWithArtifact -Blueprint $bpDefinition -OutputPath 'C:\Blueprints'
    

Импорт определения схемы

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

Примеры встроенных определений схемы см. в репозитории Azure Blueprints GitHub.

  • Имя [обязательно]
    • Указывает имя для нового определения схемы
  • InputPath [обязательно]
  • ManagementGroupId (необязательно)
    • Идентификатор группы управления, в которой следует сохранить определение схемы, если не используется значение по умолчанию из текущего контекста
    • Необходимо указать ManagementGroupId или SubscriptionId
  • SubscriptionId (необязательно)
    • Идентификатор подписки для сохранения определения схемы в том случае, если не текущий контекст по умолчанию
    • Необходимо указать ManagementGroupId или SubscriptionId
  1. Используйте командлет Import-AzBlueprintWithArtifact для импорта указанного определения чертежа:

    # Login first with Connect-AzAccount if not using Cloud Shell
    
    Import-AzBlueprintWithArtifact -Name 'MyBlueprint' -ManagementGroupId 'DevMG' -InputPath 'C:\Blueprints\MyBlueprint'
    

После импорта определения схемы назначьте его с помощью PowerShell.

Дополнительные сведения о создании расширенных определений схемы см. в следующих статьях:

Дальнейшие действия