🙄

azとAzureRMとEnable-AzureRmAliasと

2021/07/30に公開

はじめに

AzureをPowershellから操作するのに使われる「azモジュール」というモノがあります。
https://docs.microsoft.com/ja-jp/powershell/azure/new-azureps-module-az?view=azps-6.2.1

このazモジュール、出てきたのが意外と新しく、クロスプラットフォームなPowershellで使えるなどかなり使い勝手の良いモジュールではあるのですが、置き替えられることになった前世代の「AzureRM」というモジュールが将来への時限爆弾となっていることがあります。注意点としては大きく2つです。

  • AzureRMは2024/2/29まででサポートが終了する
  • AzモジュールとAzureRMモジュールは端末内で排他利用であり、共存できない
    これらの理由で、基本的にはAzureRMコマンドを使っていた場合は移行を進めていかなければいけないのですが、本番で運用している環境だと簡単に切り替えられず困っている方も居ると思います。

今回、AzureRMについて、サポートの方から聞いた話が有用そうだったので共有のために記事にしたいと思います。※本記事で一番お伝えしたいのが「エイリアスで延命されている方」ですので、ドキッとされた方は最後まで読んでみてください。

なお、最近Azureを触りだしたという方は、何も考えずに「azモジュールを導入して使いましょう」「AzureRMモジュールのことは忘れましょう」。以上で大丈夫です。

AzureRMについて

AzureRMのサポートライフサイクルは下記で発表されていますが、
https://docs.microsoft.com/ja-jp/powershell/azure/azureps-support-lifecycle?view=azps-6.2.1
2024/2/29までということで、もう猶予は3年を切っています。よっぽどのことが無い限りそろそろ移行を考えた方が良いでしょう。

Azへの移行について

AzとモジュールとAzureRMモジュールは排他利用になっているため、AzモジュールをインストールするにはAzureRMモジュールをアンインストールする必要があります。開発環境なら気軽に試せますが、本番運用している環境だとちょっと(ちょっとどころかとても)躊躇しますよね。
公式のアップデートパスとしては、下記の記事で紹介されています。
https://docs.microsoft.com/ja-jp/powershell/azure/migrate-from-azurerm-to-az?view=azps-6.2.1

コマンドの置き換え

「多くの場合」AzureRMのコマンドの"AzureRM"部分を、"az"に置き替えればそれで動きます。例えば、

New-AzureRMVm
New-AzVm

と置き換わったり、

Connect-AzureRmAccount
Connect-AzAccount

と置き換わるような形です。ですがモノによってはオプションが変わっていたり、置き換わったコマンドもあるようなので、過信せずにチェックする必要があります。
公式ドキュメントに書かれたスクリプトの自動変換を使うのが一番安全かと思いますが、不可逆ですのでバックアップを取っておくこと、ちゃんと稼働確認を行うことが大事ですね。

エイリアス

Enable-AzureRmAlias

というコマンドを使うことで、Azモジュールを入れながらAzureRMのコマンドをエイリアスとして使って、従来通りのスクリプトのまま実行することができます。移行の過渡期に、延命として導入されている方も多いのではないでしょうか。
★ここから今日書きたかったことです★
ただしこちらのエイリアス、AzureRMコマンドと同様、サポート期限は「2024/2/29」とのことです(サポートに確認済)。残念ながら、Azコマンドとの共存には効くのですが、延命にはならないのでご注意ください。
★言いたかったことココマデ★

おわりに

私もそんなに古くからAzureを触っているわけではないので、手元にある運用スクリプトの類はほとんどすべてAzモジュールで作られているのですが、一部古い環境でAzureRMが残ってしまっており、作業端末の切り替えなどで手間になっています。皆さんが変なところでハマらないよう、

Discussion