AzureRM から Az への Azure PowerShell の移行

Az モジュールには AzureRM との機能パリティがありますが、より短く一貫性のあるコマンドレット名が使用されます。 AzureRM コマンドレット用に記述されたスクリプトは、新しいモジュールで自動的に機能するわけではありません。 移行を容易にするために、Az には AzureRM を使用する既存のスクリプトを実行できるようにするツールが用意されています。 新しいコマンド セットへの移行がないに越したことはありませんが、この記事は、新しいモジュールへの切り替えを開始する際に役立ちます。

AzureRM と Az の間の重大な変更の詳細な一覧については、AzureRM から Az への詳細な変更を参照してください。

既存のスクリプトが AzureRM の最新リリースで機能することを確認する

移行手順を実行する前に、システムにインストールされている AzureRM のバージョンを確認します。 これにより、スクリプトが最新のリリースで既に実行中であることを確認し、アンインストールする必要のある AzureRM のバージョンを把握することができます。

インストールされている AzureRM のバージョンを確認するには、次のコマンドを実行します。

Get-InstalledModule -Name AzureRM -AllVersions

AzureRM の最新の一般公開リリースは 6.13.1 です。 このバージョンがインストールされていない場合、既存のスクリプトでは、ここと重大な変更の一覧で説明しているもの以外の Az モジュールを操作するための追加の変更が必要になる場合があります。

スクリプトが AzureRM 6.13.1 で機能しない場合は、AzureRM 5.x から 6.x への移行ガイドに従ってそれらを更新します。 以前のバージョンの AzureRM モジュールを使用している場合は、各メジャー バージョン用に利用できる移行ガイドがあります。

AzureRM のアンインストール

Az モジュールは、Windows 用の PowerShell 5.1 の既存の AzureRM インストールとの互換性が保証されていません。 Az モジュールをインストールする前に、AzureRM をアンインストールしてください。

重要

AzureRM モジュールをシステムから削除する準備ができていない場合は、代わりに PowerShell Core 6.x 以降用の Az モジュールをインストールできます。 PowerShell Core と Windows 用の PowerShell 5.1 は別のモジュール ライブラリを使用するため、競合することはありません。 PowerShell Core で引き続きエイリアスを有効にすることができます。

Az PowerShell モジュールをインストールします。

最初の手順では、お使いのプラットフォームに Az モジュールをインストールします。 Az をインストールするときは、AzureRM をアンインストールすることをお勧めします。 次の手順では、既存のスクリプトを引き続き実行できるようにする方法と、古いコマンドレット名の互換性を有効にする方法について説明します。

Az PowerShell モジュールをインストールするには、Az モジュールのインストールに関する記事の手順に従ってください。

Note

この時点で、Az モジュールに用意されている Uninstall-AzureRM コマンドレットを実行したい場合は、すべてのバージョンの AzureRM がアンインストールされていて、競合が発生することがないことだけ確認してください。

AzureRM と互換性のあるエイリアスを有効にする

AzureRM をアンインストールして、スクリプトが最新バージョンの AzureRM で機能するようになったら、次の手順で Az モジュールの互換モードを有効にします。 次のコマンドを使用して、互換性を有効にします。

Enable-AzureRmAlias -Scope CurrentUser

別名を使用することによって、Az モジュールがインストールされた状態で、古いコマンドレット名を使用できるようになります。 これらのエイリアスは、選択したスコープのプロファイルに書き込まれます。 プロファイルが存在しない場合は、作成されます。 CurrentUser よりも範囲が広い -Scope を使用する場合は、対応するプロファイル ファイルを作成または更新するための適切な権限が必要です。

重要

エイリアス化されるのはコマンドレット名のみで、モジュール名はエイリアス化されません。 #RequiresImport-Module.psd1 の依存関係の一覧、またはコマンドレットの完全修飾名を使用している場合は、モジュール名に関連する重大な変更の一覧に記載されている手順に従って、必ずこの時点で移行してください。

警告

このコマンドに別の -Scope を使用することができますが、これはお勧めしません。 別名は選択したスコープのユーザー プロファイルに書き込まれるので、できるだけ限られたスコープに対して有効にしてください。 エイリアスをシステム全体で有効にすると、ローカル スコープに AzureRM をインストールしている他のユーザーに問題が生じることもあります。

別名モードを有効にしたら、、スクリプトを再度実行して、スクリプトが引き続き想定どおりに機能することを確認します。 一部のパラメーター名は、Az モジュールで必要な変更、追加、または作成が行われています。 コマンドレットの出力の種類も同様に変更されている場合があります。 これらの変更については、重大な変更の一覧で詳しく説明します。

コマンドレット、モジュール、およびパラメーターを更新する

更新されてエイリアスの下で実行されているスクリプトは、新しいコマンドレットを使用したり新しい機能などのその他の変更を活用したりするように更新するには、時間がかかる可能性があります。 ほとんどのスクリプトでは、Az の新しいコマンドレット名前付けスキームに従ってコマンドレット名を更新するだけで済みます。 スクリプトの実行内容とそのスクリプトで利用される Azure PowerShell の機能によっては、スクリプトを機能させるためにその他のいくつかの変更を加える必要がある場合があります。

たとえば、Blob Storage コマンドレットは新しい非同期モデルを使用するために完全に再作成されているため、それらを使用するスクリプトを更新するには、関連する変更がコマンドレット名のみだったスクリプトよりも多くの作業が必要となります。

この時点までにスクリプトに対してわずかで単純な変更しか加えていない場合でも、つまり、エイリアスが有効になっているときに追加の変更なしでスクリプトが機能する場合でも、Az 1.0.0 の重大な変更の詳細な一覧を参照して、コマンドレット名を変更してエイリアスを無効にした後に消える可能性があるエイリアスの '透過的' な動作に依存していないことを確認してください。

エイリアスを無効にする

移行が完了し、エイリアスの動作に依存しなくなったら、エイリアスを無効にすることをお勧めします。 これは Disable-AzureRmAlias コマンドレットを使用して行います。

重要

このコマンドレットを実行するときは、必ずEnable-AzureRmAlias を呼び出した -Scope ごとに呼び出してください。そうしないと、システム上のスクリプトが引き続きエイリアスの動作に依存する可能性があります。