Azure CLI のバージョン塩漬け、その前に
「いま正常に動いているから、Azure CLI のバージョンはコレで固定...」したくなる時があるかもしれませんが、まずは以降の内容を確認しておきましょう💪
Azure CLI のしくみ
Azure CLI は、コマンドに応じて Azure Resource Manager への REST API をラップしている形になっています。
このため、Azure CLI としては大まかに「Azure CLI 自体のバージョン」と「REST API のバージョン」それから「実行環境のバージョン」が関わってくることになります。
Azure CLI 自体のバージョン
Azure CLI 自体のサポートライフサイクルは下記のドキュメントのように規定されています。
注意すべきは、LTS ではないバージョンではサポート期間が「次のバージョンが出るまで」 であり、サポートを受けるためには最新のバージョンに追従していく必要があります。少なくともドキュメント上は。
つまり、塩漬けしてしまった後に何らかの問題が発生した場合、原因はともかくとして「最新バージョンにアップデートしてください」がサポートを受けるための条件、または解決手段となってしまうケースがあり得るということです。
一方、LTS バージョンであれば、リリース後 1 年間はサポートが提供されます。ただし言い換えると 1 年間しかサポートされないので、サポータブルな状態を維持するためには結局のところ定期的なバージョンアップの検討・試験が必要になってくることに注意しましょう。
REST API のバージョン
REST API の特定バージョンに対するサポートについては、公式ドキュメントに下記の記載があります。
安定したサービス バージョンは、一般に、新しいバージョンが利用可能になったとしても、長年にわたって利用可能であり、サポートされています。 ほとんどの場合、既存のコード内で新しいサービス バージョンを採用する必要があるのは、新機能を利用することだけです。
なお、Azure CLI の実装では、既定で利用するバージョンは下記で指定しているようです。
このような状況のため、基本的には古いバージョンの Azure CLI で動いていたものが動作しなくなるリスクは低いと期待できます。ただし万一、リソースに対応する API が変わってしまったり、特定のバージョンが廃止された際には、古いバージョンの Azure CLI では動作しなくなる可能性があります。
実行環境 (OS / Python) のバージョン
OS や Python などの実行環境のバージョンにも注意が必要です。下記のドキュメントにバッチリ記載されていますので、チェックしておきましょう。
おわりに
状況によっては Azure CLI のバージョン固定 (塩漬け) をしたくなるかもしれませんが、上記の通り、地味に Azure CLI 自体のサポートライフサイクルは短めです。できるだけ、最新の Azure CLI でテストできる環境を準備しておきたいですね。
Discussion