Azure研究サイト

Azure研究サイト

~理解しずらい情報をシンプルにお伝えします~

AppService(Windows,Linux)のJavaバージョンとJavaマイナーバージョンの指定・自動更新・固定化をまとめた

 
AppService/FunctionsでJavaアプリケーションを開発・運用する際には、Javaのバージョン設定を意識する必要があります。オンプレ環境サーバではないので、Azureの仕組みを理解していないと、知らぬ間にAzure側のJavaバージョンがあがってしまっていた!などが発生する可能性があります。
 
 
WindowsOSとLinuxOSとで、ポータル画面の動作が違うので、分けて説明していきます。

WebApp(Windows)の avaバージョン・Javaマイナーバージョンについて

WindowsOSの場合、全般設定タブでJavaバージョン・Javaマイナーバージョンの両方が設定可能です。
 
 
Javaマイナーバージョンのポイントは、Java11(自動更新)と書かれてるものを選んだら、マイナーバージョンは自動更新されます。
 
 
勝手に更新されたくなければ、マイナーバージョンが書かれているJava11.0.7などを選択すれば自動更新されずにバージョン固定できます。

WebAppforLinuxのJavaバージョンについて

LinuxOSの場合、Javaバージョンはメジャーバージョンを指定できますが、マイナーバージョンは指定できません。指定できないのでマイナーバージョンは、新しいマイナーバージョンに(勝手に)自動更新が行われます。
自動更新のタイミングは、事前通知がないと聞いたことがあります。バッチによって順次リージョンごとに行われ、正確な適用時間も把握することは難しいと思います。
 

ポータル画面から選択できないバージョンに設定できる方法

サポートしている(利用できる)すべてのバージョンを、ポータル画面で指定できるようにはなっていません。たとえば、Java7 はまだサポートされている(利用できる)状況ですが、ポータル画面の選択には Java8,11 しか選べません。
 
 
ポータル画面で指定できない場合は、以下の手順で指定できます。(知られていない情報)
 
 
以下に紹介する手順は、WindowsOSのみ利用可能です。ResourceExplorerというものを使うのですが、この手順は知らない方も多いのではないでしょうか。是非試してみてください。

ポータル画面で選択できないバージョンの設定方法

任意のバージョン設定方法

■ ResourceExplorerにアクセス
ResourceExplorer(https://resources.azure.com/)へアクセスして、ログイン操作
 
■ 以下を参考にwebページまで開く
ー subscriptions
 

 ー <<該当サブスクリプション>>
 ーー resourceGroups
 ーー <<該当リソースグループ>>
 ーーー Microsoft.Web
 ーーー sites
 ーーー <<該当 App Service/Functions>>
 ーーーー config
 ーーーー web
  
 
■ [Edit] ボタンを押下して "javaVersion" を "11.0.8" へ変更
 
■ 変更を保存
[PATCH] ボタンを押下
 
■ アプリを再起動
該当 AppService > 概要 > 再起動 を実行
 
ResourceExplorerの参考サイト貼っておきます。
https://microsoft.github.io/AzureTipsAndTricks/blog/tip25.html  
 

Javaバージョンの確認方法

ご自身のJavaアプリケーションがAzure上でどのバージョンで動作しているか、以下の方法で確認できます。
Kuduサイト java -versionコマンドで、現在アプリケーションに適応中のJavaのバージョンが表示されます。
 

Javaバージョンの確認方法

STEP
Kuduサイトを開く
Azureポータル > 該当のAppService > [高度なツール] > [移動] のリンクを押下
STEP
コンソールを開く
Kudu画面で、上部の [Debug console] > [CMD] を選択
STEP
コマンドで確認
下部のコンソールにて"Java -version"を入力(コマンドプロンプトと同じですね)
  

 
 

AppServiceでサポートされているJavaバージョンは公式ドキュメントで見れます

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

docs.microsoft.com
===== 抜粋 ここから =====

===== 抜粋 ここまで =====

※ 以前は上記の内容が書かれていたのですが、ページ内容が変更されてしまったようです。
(2021年9月現在)
 

WebAppforLinuxで任意のJavaマイナーバージョンを使用する方法

LinuxOSの場合、先述したとおり、Javaマイナーバージョンは指定できずに自動更新されてしまいます。LinuxOSでJavaバージョン指定したい場合は、カスタムコンテナを使用する必要があります。
 
 
ざっくりとした流れとしては、以下をやっていくと、指定したJavaのマイナーバージョンをWebAppforLinuxで使用できます。
(1)WebAppforLinuxのカスタムコンテナを作成する
(2)DockerHubから指定のJavaバージョンのイメージをカスタムコンテナにプルする
     
 
以下にカスタムコンテナに関する、公式ドキュメントを載せておきますね。
 
カスタムコンテナ実行方法

docs.microsoft.com

 
AzureAppServiceのカスタムLinuxコンテナ構成方法

docs.microsoft.com

 
AzureAppServiceのコンテナイメージのプル(格納)を行う方法

docs.microsoft.com

 
 

皆さまの疑問は解消されたでしょうか。
もし不明点あれば、コメントに記載いただければと思います。
 
以上です。
 

ご意見・ご要望はこちらへ 


/*--------------------------------------------------------------------*/