AzureRM から Az への Azure PowerShell の移行

AzureRM PowerShell モジュールのすべてのバージョンは古くなっています。 現在、Azure を操作するために推奨される PowerShell モジュールは Az PowerShell モジュールです。

重要

Az PowerShell モジュール で AzureRM PowerShell モジュールのすべての機能およびその他を利用できるようになったため、2024 年 2 月 29 日に AzureRM PowerShell モジュールは廃止になります。

サービスの中断を回避するために、2024 年 2 月 29 日までに、AzureRM PowerShell モジュールを使用するスクリプトを更新して、Az PowerShell モジュールを使用するようにしてください。 スクリプトを自動的に更新するには、 クイックスタート ガイドに従ってください。

新しいモジュールである理由

最大かつ最も重要な変更は、.NET Standard ライブラリに基づいた PowerShell は、その導入以来クロスプラットフォーム対応製品であることです。

PowerShell 言語と同じく、Microsoft は、すべてのプラットフォームに Azure サポートを導入することに取り組んでいます。 この取り組みにより、.NET Standard を使用するように Azure PowerShell モジュールを更新し、PowerShell Core との互換性を持つようにすることが必要でした。 既存の AzureRM モジュールを変更し、複雑な変更を導入してこのサポートを追加する代わりに、Az モジュールが作成されました。

新しいモジュールを作成することで、エンジニアが設計、コマンドレットの名前付け、およびモジュールに一貫性を確保することもできます。 すべてのモジュールの先頭は Az. プレフィックスになり、コマンドレットはすべて Verb-AzNoun の名前付け規則を使用するようになりました。 以前は、コマンドレットの名前は長く、整合性がありませんでした。

モジュールの数も少なくなりました。同じサービスで動作する複数のモジュールが結合されました。 同じサービス用の管理プレーンとデータ プレーンのコマンドレットが、1 つのモジュールに含まれるようになりました。 依存関係とインポートを手動で管理している場合は、この統合により操作がはるかに簡単になります。

チームでは、これらの重要な変更を加えることによって、Azure で PowerShell コマンドレットを以前よりも多くのプラットフォーム上でかつてないほど簡単に使用できるようにすることに取り組んできました。

Az PowerShell へのアップグレード

AzureRM コマンドレット用に記述されたスクリプトは、Az で自動的に機能するわけではありません。 移行を容易にするために、AzureRM to Az Migration Toolkit が開発されました。 新しいコマンド セットへの移行がないに越したことはありませんが、この記事は、Az PowerShell モジュールへの切り替えを開始する際に役立ちます。 Az PowerShell モジュールが作成された理由の詳細については、「新しい Azure PowerShell Az モジュールの概要」を参照してください。

新しいコマンドレット名は、覚えやすいように設計されています。 コマンドレット名では AzureRmAzure を使用する代わりに、Az を使用します。 たとえば、古いコマンドレット New-AzureRMVmNew-AzVm になりました。 ただし、移行は単に新しいコマンドレット名に慣れることだけではありません。 モジュールやパラメーターの名前の変更や、その他の重要な変更があります。

AzureRM と Az の間の重大な変更の詳細な一覧については、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 to Az Migration Toolkit を使用すると、スクリプトに対して実行される変更を決定するためのプランを生成してから、それらに対して変更を加え、Az PowerShell モジュールをインストールすることができます。

AzureRM から Az PowerShell モジュールに PowerShell スクリプトを自動的に移行する」のクイックスタートでは、PowerShell スクリプトを AzureRM から Az PowerShell モジュールに自動的に更新するプロセス全体について説明します。

オプション 2:Enable-AzureRmAlias で互換モードを使用する

Az モジュールには互換モードがあり、既存のスクリプトを使用しながら、新しい構文に更新することができます。 Enable-AzureRmAlias コマンドレットは、エイリアスを使用して互換モードを有効にします。 このモードでは、Az への完全な移行に向けた作業において、最小限の変更で既存のスクリプトを使用できます。 既定では、Enable-AzureRmAlias によって、現在の PowerShell セッション用の互換性のあるエイリアスが有効になるだけです。 PowerShell セッション間で互換性のあるエイリアスを保持するには、Scope パラメーターを使用してください。 詳細については、Enable-AzureRmAlias のリファレンス ドキュメントを参照してください。

重要

コマンドレット名がエイリアス化されているとしても、Az コマンドレットの新しい (または名前が変更された) パラメーターや変更された戻り値はまだ残っている可能性があります。 エイリアスで移行を管理できるとは思わないでください。 スクリプトの更新が必要になる可能性のある変更については、重大な変更の詳細な一覧を参照してください。

オプション 3:Azure PowerShell 拡張機能を使用して Visual Studio Code 内のスクリプトを移行する

Visual Studio Code 用 Azure PowerShell 拡張機能をインストールする

VSCode 用 Azure PowerShell 拡張機能をインストールします

スクリプトを手動で変換する

  1. VSCode で AzureRM スクリプトを読み込みます
  2. コマンドパレット Ctrl+Shift+P を開き、Migrate Azure PowerShell script を選択して移行を開始します
  3. ソースのバージョン AzureRM を選択します
  4. 下線が引かれた各コマンドまたはパラメーターについて、推奨される操作に従います

次のステップ