Поделиться через


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

Важно!

11 июля 2026 г. blueprints (предварительная версия) будет считаться нерекомендуемой. Перенесите существующие определения и назначения схем в спецификации шаблонов и стеки развертывания. Артефакты схемы необходимо преобразовать в шаблоны JSON ARM или файлы Bicep, используемые для определения стеков развертывания. Чтобы узнать, как создать артефакт в качестве ресурса ARM, см. следующие статьи:

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

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

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

Предварительные требования

Для работы с этой статьей необходим опыт использования Azure Blueprints. Если опыта использования нет, изучите указанные ниже статьи.

Выполните инструкции из этой статьи, чтобы установить модуль Az.Blueprint из коллекции PowerShell и проверить его работу.

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

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

Важно!

Если в параметр Имя командлета 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

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

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

  • Blueprint [обязательный]:
    • указывает определение схемы;
    • используйте Get-AzBlueprint для получения объекта ссылки.
  • OutputPath [обязательный]:
    • указывает путь для сохранения файлов JSON определения схемы;
    • выходные файлы находятся во вложенной папке с именем определения схемы.
  • Version (необязательный):
    • указывает версию для вывода данных, если объект ссылки 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 Blueprint GitHub.

  • Name [обязательный]:
    • указывает имя для нового определения схемы.
  • 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.

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

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