WebApp(Windows) の Javaバージョン・Javaマイナーバージョンについて
WindowsOSの場合は、全般設定タブでJavaバージョン・Javaマイナーバージョンを両方とも設定できます。
Javaマイナーバージョンのポイントは、Java11(自動更新)と書かれてるものを選んだら、マイナーバージョンは自動で更新されます。
勝手に更新されたくなければ、マイナーバージョンが書かれているJava11.0.7などを選択すれば自動更新されずにバージョン固定できます。
WebAppforLinux の Javaバージョンについて
LinuxOSの場合、Javaバージョンはメジャーバージョンは選択できますが、マイナーバージョンは指定できません。
指定できないのでマイナーバージョンは、新しいマイナーバージョンに勝手に自動更新が行われます。
自動更新のタイミングは、事前通知もなく、バッチによって順次リージョンごとに行われ、正確な適用時間はわかりません。
サポートされている(利用可能な)Javaバージョンは以下の公式ドキュメントから確認できます。
ポータル画面から選択できないバージョンの設定手順
サポートしている(利用できる)すべてのバージョンが、ポータル画面から選択できるかと言うとそうではないんです。たとえば、Java7 はまだサポートされている(利用できる)状況ですが、ポータル画面の選択には Java8,11 しか選べません。
そういう場合は、以下の手順で変更できます。
以下に紹介する手順は、WindowsOS・LinuxOS 共通です。Resource Explorer というものを使うのですが、この手順は知らない方も多いのではないでしょうか。是非試してみてください。
ポータル画面で選択できないバージョンの設定方法
(1)Resource Explorer (https://resources.azure.com/) へアクセスし、対象サブスクリプションへログイン
(2)上部 [Search] より "Microsoft.Web/site" からアプリを見つける
(3)左部の対象アプリの config > web を選択
(4)[Edit] ボタンを押下して "javaVersion" を "1.7.0_51" へ変更
(5)[PATCH] ボタンを押下
Javaバージョンの確認方法
Kuduサイトで java -version とコマンド入力すると、現在アプリケーションに適応中の Java のバージョンが表示される。
(1)Azure ポータル > 該当のAppService > [高度なツール] > [移動] のリンクを押下
(2)Kudu 画面で、上部の [Debug console] > [CMD] を選択
(3)下部のコンソールにて "Java -version" を入力(コマンドプロンプトと同じですね)
WebAppforLinux で任意の Javaマイナーバージョン を使用する方法
LinuxOSの場合、Javaマイナーバージョンが指定できず自動更新されてしまうので、カスタムコンテナを使用する必要があります。
ざっくりとした流れとしては、
(1)WebAppforLinux のカスタムコンテナを作成する
(2)DockerHub から指定の Java バージョンのイメージをカスタムコンテナにプルする
ということをやっていくと、指定した Java のマイナーバージョン を WebAppforLinux で使用できます。
カスタムコンテナに関する公式ドキュメントを載せておきます。
【公式ドキュメント】 カスタムコンテナ実行方法
https://docs.microsoft.com/ja-jp/azure/app-service/quickstart-custom-container?pivots=container-linux 【公式ドキュメント】 AzureAppService のカスタムLinuxコンテナ構成方法 https://docs.microsoft.com/ja-jp/azure/app-service/configure-custom-container 【公式ドキュメント】 AzureAppService のコンテナイメージのプル(格納)を行う方法 https://docs.microsoft.com/ja-jp/azure/app-service/configure-custom-container?pivots=container-linux#how-container-images-are-stored 以上です。