Loading
BLOG 開発者ブログ

2019年12月2日

【アップデート】AWS LambdaでJava 11(Corretto 11)がサポートされました!

AWS LambdaでJava 11(Corretto 11)がサポートされました

先日のアップデートにより、LambdaでJava 11(Corretto 11)が利用できるようになりました!

AWS Lambda now supports Java 11 | AWS Release

今まではJava 11をLambdaで利用しようとした場合、自分でカスタムランタイムを作成する必要がありました。

AWS Lambda のカスタムランタイムにて Java のカスタムランタイムで関数を動かす | mike-neckのブログ

しかし、今回のアップデートによりデフォルトでJava 11のランタイムを選択できるようになりました!
さらに、ただJava 11が使えるようになったわけではなく、
Amazon謹製のOpen JDKディストリビューションであるCorretto 11を利用することができるようになっています。

早速、Java 11を試してみましょう!


はじめに

こんにちは。

クラウドソリューショングループのwatanabe.tです。

この記事は アイソルートAdventCalendar2019 2日目の記事です。

昨日は namiki.t さんの 「ダークモード」のすゝめ でした。
ただダークモードを使いたくなるだけでなく、自分もダークモードを意識してアプリを作らねば、と思ってしまうような記事でしたね。


Why Java 11(Corretto 11)?

まずは前提知識として、Javaのリリースサイクルを振り返っておきましょう。

Java8までは1つのバージョンが長い期間継続開発・サポートされるようなポリシーでしたが、Java9からはそのサポートポリシーが変更になりました。
また、LTSの対象となるバージョンも限られており、下表のようなリリースサイクルが予定されています。

詳細は Oracle公式サイト 参照してください。

バージョン リリース日 サポート期限
8 2014年3月 2022年3月
9(non-LTS) 2017年9月 2018年3月
10(non-LTS) 2018年3月 2018年9月
11(LTS) 2018年9月 2023年9月

この表にあるように、Java 8のサポートは2022年までとなっており、早い段階でのJava 11への移行をしていくことが肝要です。


やってみる

さて、早速Lambdaのマネジメントコンソールから確認してみましょう。

Lambda_java11_01

ちゃんとランタイムでJava 11が選択できるようになっています!
まずは、このままJava 11でLambda関数を作成します。

Lambda_Java11_03

次に、Lambdaのコードを書いてみます。
試しにJava 11で利用できる 型推論 を使ってみましょう。
※Java 10の新機能ではありますが、Java 8では使えなかったので検証のために利用します。

public String handleRequest(Context context) {
    var greet = "Hello from Lambda";

    return greet;
}


コードを作成・ビルドした後に適当なテストイベントを設定して実行してみると……

Lambda_Java11_02

無事に実行が完了し、 型推論 が機能していることが確認できました!


まとめ

2019年3月にGAされたCorretto 11 がAWS Lambdaで利用可能となりました。

AWS LambdaでのJava 8ランタイムサポートのEOLについてはアナウンスされていませんが、Java 8自体は2023年6月にEOLを迎える予定となっています。

EC2などではCorretto 11が利用できるようになっていたため、Java 8からの移行や導入を検討されていた方も、AWS Lambdaの未サポートがハードルになっていたのではないでしょうか。

今回のリリースにより、サポート期間が長く、より安定して使うことができるJava 11環境でランタイムを統一することもできるようになりました。
ぜひ、この機会に導入を検討してみてはいかがでしょうか。

明日は imai.k さんの 「【データポータル】スプレッドシートのデータで簡単ダッシュボード作成!」です。


watanabe.tのブログ

クラウドソリューショングループ所属

昔はモバイルアプリ開発を、今はGCP, AWS, Firebaseなどのクラウド周りの提案/開発を行っているエンジニアです。

AWS認定ソリューションアーキテクト取得しました!