Перенос Azure PowerShell с AzureRM на Az

Все версии модуля AzureRM PowerShell устарели. Модуль Az PowerShell теперь является рекомендуемым модулем PowerShell для взаимодействия с Azure.

Важно!

Так как модули PowerShell Az теперь обладают всеми возможностями модулей PowerShell AzureRM, а также многими другими, 29 февраля 2024 г. мы прекратим поддержку модулей PowerShell AzureRM.

Чтобы избежать прерываний в работе служб, обновите скрипты, использующие модули PowerShell AzureRM, для использования модулей PowerShell Az, до 29 февраля 2024 г. Чтобы автоматически обновить скрипты, следуйте инструкциям из этого краткого руководства.

Преимущества нового модуля

Самое большое и важное изменение заключается в том, что PowerShell является кросс-платформенным продуктом на основе библиотеки .NET Standard с момента своего появления.

Как и в случае с PowerShell, мы стремимся обеспечить поддержку Azure на всех платформах. Поэтому мы обновили модули Azure PowerShell для обеспечения совместимости с .NET Standard и PowerShell Core. Вместо того чтобы вносить в существующий модуль AzureRM сложные изменения для включения этой поддержки, был создан модуль Az.

Это решение также позволило нашим инженерам сделать разработку, модули и имена командлетов согласованными. Все модули теперь начинаются с префикса Az., а все командлеты следуют соглашению об именовании, определяющем формат Verb-AzNoun. Раньше имена командлетов были длинными и непоследовательными.

Количество модулей также уменьшилось — некоторые модули, предназначенные для одних и тех же служб, были объединены. Командлеты плоскости управления и плоскости данных для одной службы теперь содержатся в отдельном модуле. Это упрощает задачу для тех, кто вручную управляет зависимостями и импортом.

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

Обновление до Az PowerShell

Скрипты, написанные для командлетов AzureRM, не смогут автоматически работать с Az. Чтобы упростить этот переход, был разработан набор средств для миграции с AzureRM на Az. Миграция всегда сопряжена со сложностями, и эта статья поможет вам начать переход на новый модуль Az PowerShell. Дополнительные сведения о том, для чего был создан модуль Az PowerShell, см. в статье Знакомство с новым модулем Az для Azure PowerShell.

Новые имена командлетов выбраны таким образом, чтобы их было легко запомнить. Вместо имен командлетов AzureRm или Azure используйте Az. Например, вместо старого командлета New-AzureRMVm используется New-AzVm. Но при переносе вам нужно не просто ознакомиться с новыми именами командлетов. Были переименованы модули, параметры и внесено много других важных изменений.

Полный список критических изменений между AzureRM и Az см. здесь.

Убедитесь, что существующие скрипты работают с последним выпуском AzureRM

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

Чтобы проверить установленные версии AzureRM, выполните приведенный ниже пример.

Get-Module -Name AzureRM -ListAvailable -All

Последний доступный выпуск AzureRM — 6.13.2. Если у вас нет этой версии, возможно, ваши существующие скрипты нужно будет изменить для работы с модулем Az наряду с изменениями, описанными в этой статье и списке критических изменений.

Если скрипты не работают с AzureRM 6.13.2, обновите их в соответствии с руководством по переходу AzureRM с версии 5.x на 6.x. Если вы используете более раннюю версию модуля AzureRM, найдите нужное руководство. Руководства по миграции существуют для каждого основного номера версии.

Этот рекомендуемый вариант предполагает минимум усилий с вашей стороны для переноса скриптов AzureRM в Az.

Установка набора средств для миграции с AzureRM на Az

Install-Module -Name Az.Tools.Migration

Автоматическое преобразование скриптов

Используя набор средств для миграции с AzureRM на Az, вы можете подготовить план, который определяет изменения, которые будут внесены в скрипты до их внесения и установки модуля Az PowerShell.

В статье Краткое руководство. Автоматическая миграция скриптов PowerShell из AzureRM в модуль Az PowerShell показано, как выполнить автоматический перенос скриптов PowerShell из AzureRM в модуль Az PowerShell.

Вариант 2. Использование режима совместимости с помощью Enable-AzureRmAlias

В модуле Az предусмотрен режим совместимости, который позволяет использовать существующие скрипты, пока вы выполняете обновление для нового синтаксиса. Командлет Enable-AzureRmAlias включает режим совместимости с использованием псевдонимов. Так вы сможете использовать существующие скрипты с минимальными изменениями во время подготовки к полному переходу на Az. По умолчанию Enable-AzureRmAlias включает псевдонимы совместимости только для текущего сеанса PowerShell. Используйте его параметр Scope, чтобы псевдонимы совместимости поддерживались во всех сеансах PowerShell. Дополнительные сведения см. в справочной статье о командлете Enable-AzureRmAlias.

Важно!

Несмотря на то что для имен командлетов используются псевдонимы, все же могут существовать новые (или переименованные) параметры или измененные возвращаемые значения для командлетов Az. Не ожидайте, что активация псевдонимов обеспечит миграцию для вас. Ознакомьтесь с полным списком критических изменений, чтобы узнать, где в скриптах могут потребоваться обновления.

Способ 3. Перенос скриптов в Visual Studio Code с помощью расширения Azure PowerShell

Установка расширения Azure PowerShell для Visual Studio Code

Установите расширение Azure PowerShell для VS Code.

Преобразование скриптов вручную

  1. Загрузите скрипт AzureRM в VS Code.
  2. Начните миграцию, открыв палитру команд с помощью клавиш Ctrl+Shift+P и выбрав Migrate Azure PowerShell script.
  3. Выберите исходную версию AzureRM.
  4. Выполните рекомендуемые действия для каждой команды или параметра.

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