Java による Lambda 関数の構築 - AWS Lambda

Java による Lambda 関数の構築

Java コードを AWS Lambda で実行できます。Lambda は、コードを実行してイベントを処理する Java 用のランタイムを提供します。コードは、管理している AWS Identity and Access Management (IAM) ロールからの AWS 認証情報を含む Amazon Linux 環境で実行されます。

Lambda は、以下の Java ランタイムをサポートしています。

名前 識別子 オペレーティングシステム 廃止日 関数の作成をブロックする 関数の更新をブロックする

Java 21

java21

Amazon Linux 2023

スケジュールされていません

スケジュールされていません

スケジュールされていません

Java 17

java17

Amazon Linux 2

スケジュールされていません

スケジュールされていません

スケジュールされていません

Java 11

java11

Amazon Linux 2

スケジュールされていません

スケジュールされていません

スケジュールされていません

Java 8

java8.al2

Amazon Linux 2

スケジュールされていません

スケジュールされていません

スケジュールされていません

Lambda には、Java 関数用に以下のライブラリが用意されています。

  • com.amazonaws:aws-lambda-java-core (必須) - ランタイムがハンドラに渡すハンドラメソッドインターフェイスとコンテキストオブジェクトを定義します。独自の入力タイプを定義する場合、これが唯一必要なライブラリです。

  • com.amazonaws:aws-lambda-java-events - Lambda 関数を呼び出すサービスからのイベントの入力タイプ。

  • com.amazonaws:aws-lambda-java-log4j2 - 現在の呼び出しのリクエスト ID を関数ログに追加するために使用できる Apache Log4j 2 のアペンダーライブラリ。

  • AWS SDK for Java 2.0 - Java プログラミング言語用の公式の AWS SDK。

重要

プライベートフィールド、メソッド、クラスなどの JDK API のプライベートコンポーネントは使用しないでください。非公開 API コンポーネントは更新時に変更または削除され、アプリケーションが動作しなくなる可能性があります。

Java 関数を作成するには
  1. Lambda コンソールを開きます。

  2. [Create function] (関数の作成) をクリックします。

  3. 以下の設定を行います。

    • [Function name]: 関数名を入力します。

    • [Runtime]: [Java 21] を選択します。

  4. [Create function] (関数の作成) をクリックします。

  5. テストイベントを設定するには、[テスト] を選択します。

  6. [イベント名] で、「test」と入力します。

  7. [変更を保存] をクリックします。

  8. [Test] (テスト) を選択して関数を呼び出します。

コンソールは、Hello という名前のハンドラクラスを持つ Lambda 関数を作成します。Java はコンパイルされた言語であるため、Lambda コンソールでソースコードを表示または編集することはできませんが、設定の変更、呼び出し、トリガーの設定を行うことができます。

注記

ローカル環境でアプリケーション開発を開始するには、このガイドの GitHub リポジトリで利用可能なサンプルアプリケーションの 1 つをデプロイします。

Hello クラスには、イベントオブジェクトおよびコンテキストオブジェクトを取得する handleRequest という名前の関数が含まれています。これは、関数が呼び出されるときに Lambda が呼び出すハンドラー関数です。Java 関数のランタイムは Lambda から呼び出しイベントを取得し、ハンドラに渡します。関数設定で、ハンドラ値は example.Hello::handleRequest です。

関数のコードを更新するには、デプロイパッケージを作成します。このパッケージは、関数コードを含む .zip ファイルアーカイブです。関数の開発が進むにつれて、ソース管理への関数コードの保存、ライブラリの追加、デプロイの自動化を行うことがあります。まず、デプロイパッケージを作成し、コマンドラインでコードを更新します。

関数のランタイムによって、呼び出しイベントに加えて、コンテキストオブジェクトがハンドラに渡されます。コンテキストオブジェクトには、呼び出し、関数、および実行環境に関する追加情報が含まれます。詳細情報は、環境変数から入手できます。

Lambda 関数には CloudWatch Logs ロググループが付属しています。関数のランタイムは、各呼び出しに関する詳細を CloudWatch Logs に送信します。これは呼び出し時に、任意の関数が出力するログを中継します。関数がエラーを返す場合、Lambda はエラー形式を整え、それを呼び出し元に返します。