- WebApp(Windows) の Javaバージョン・Javaマイナーバージョンについて
- WebAppforLinux の Javaバージョンについて
- ポータル画面から選択できないバージョンに設定できる方法
- Javaバージョンの確認方法
- App Service でサポートされている Java バージョンは公式ドキュメントで見れます
- WebAppforLinux で任意の Javaマイナーバージョン を使用する方法
AppService/Functions で Javaアプリケーションを開発・運用する際には、Javaのバージョン設定を意識する必要があります。
オンプレ環境サーバではないので、Azureの仕組みを理解していないと、知らぬ間に Azure側のJavaバージョンがあがってしまっていた!などが発生する可能性があります。
WindowsOS と LinuxOS とで、ポータル画面の動作が違うので、分けて説明していきます。
WebApp(Windows) の Javaバージョン・Javaマイナーバージョンについて
WindowsOS の場合、全般設定タブでJavaバージョン・Javaマイナーバージョンの両方が設定可能です。
Javaマイナーバージョンのポイントは、Java11(自動更新)と書かれてるものを選んだら、マイナーバージョンは自動更新されます。
勝手に更新されたくなければ、マイナーバージョンが書かれているJava11.0.7などを選択すれば自動更新されずにバージョン固定できます。
WebAppforLinux の Javaバージョンについて
LinuxOS の場合、Javaバージョンはメジャーバージョンを指定できますが、マイナーバージョンは指定できません。
指定できないのでマイナーバージョンは、新しいマイナーバージョンに(勝手に)自動更新が行われます。
自動更新のタイミングは、事前通知がないと聞いたことがあります。バッチによって順次リージョンごとに行われ、正確な適用時間も把握することは難しいと思います。
ポータル画面から選択できないバージョンに設定できる方法
サポートしている(利用できる)すべてのバージョンを、ポータル画面で指定できるようにはなっていません。たとえば、Java7 はまだサポートされている(利用できる)状況ですが、ポータル画面の選択には Java8,11 しか選べません。
ポータル画面で指定できない場合は、以下の手順で指定できます。
(知られていない情報です)
以下に紹介する手順は、WindowsOS のみ利用可能です。Resource Explorer というものを使うのですが、この手順は知らない方も多いのではないでしょうか。是非試してみてください。
ポータル画面で選択できないバージョンの設定方法
任意のバージョン設定方法

ー <<該当サブスクリプション>>
ーー resourceGroups
ーー <<該当リソースグループ>>
ーーー Microsoft.Web
ーーー sites
ーーー <<該当 App Service/Functions>>
ーーーー config
ーーーー web


Resource Explorer の参考サイト貼っておきます。
Tip 25 - Use the Azure Resource Explorer to quickly explore REST APIs | Azure Tips and Tricks
Javaバージョンの確認方法
ご自身の Java アプリケーションが Azure 上でどのバージョンで動作しているか、以下の方法で確認できます。
Kudu サイトで java -version コマンドで、現在アプリケーションに適応中の Java のバージョンが表示されます。
Java バージョンの確認方法

App Service でサポートされている Java バージョンは公式ドキュメントで見れます
最後になりますが、サポートされている(利用可能な)Javaバージョンは、以下の公式ドキュメントから確認できます。

※ 以前は上記の内容が書かれていたのですが、ページ内容が変更されてしまったようです。
(2021年9月現在)
WebAppforLinux で任意の Javaマイナーバージョン を使用する方法
LinuxOS の場合、先述したとおり、Javaマイナーバージョンは指定できずに自動更新されてしまいます。LinuxOS で Java バージョン指定したい場合は、カスタムコンテナを使用する必要があります。
ざっくりとした流れとしては、以下をやっていくと、指定した Java のマイナーバージョン を WebAppforLinux で使用できます。
(1)WebAppforLinux のカスタムコンテナを作成する
(2)DockerHub から指定の Java バージョンのイメージをカスタムコンテナにプルする
以下にカスタムコンテナに関する、公式ドキュメントを載せておきますね。
カスタムコンテナ実行方法
AzureAppService のカスタムLinuxコンテナ構成方法
AzureAppService のコンテナイメージのプル(格納)を行う方法
皆さまの疑問は解消されたでしょうか。
もし不明点あれば、コメントに記載いただければと思います。
以上です。