メニュー
AWS Lambda
開発者ガイド

ハンドラーの入出力タイプ (Java)

AWS Lambda は、Lambda 関数を実行するときにハンドラーを呼び出します。最初のパラメータはハンドラーへの入力です。これは、イベントデータ (イベントソースによって公開される) または文字列やカスタムデータオブジェクトなど、ユーザーが提供するカスタム入力とすることができます。

AWS Lambda は、ハンドラーの次の入出力タイプをサポートします。

  • Java のシンプルな型 (AWS Lambda は、文字列型、整数型、ブール型、マップ型、およびリスト型をサポートします)

  • POJO (Plain Old Java Object) 型

  • ストリーム型 (POJO を使用しない場合、または Lambda のシリアル化のアプローチがニーズに合わない場合は、バイトストリーム実装を使用できます)。詳細については、「例: ハンドラーの入出力にストリームを使用する (Java)」を参照してください。

ハンドラーの入出力: 文字列型

次の Java クラスは、入出力に文字列型を使用する myHandler と呼ばれるハンドラーを示します。

Copy
package example; import com.amazonaws.services.lambda.runtime.Context; public class Hello { public String myHandler(String name, Context context) { return String.format("Hello %s.", name); } }

他のシンプルな Java の型には、類似したハンドラー関数を使用できます。

注記

Lambda 関数を非同期で呼び出した場合、Lambda 関数の戻り値はすべて無視されます。したがって、そのことをコード内で明確にするために、戻り型を void に設定することもできます。詳細については、「Invoke」を参照してください。

エンドツーエンドの例をテストするには、 「ステップ 2.3: (オプション) Java で Lambda 関数を作成する」を参照してください。

ハンドラーの入出力: POJO の型

次の Java クラスは、入出力に POJO を使用する myHandler と呼ばれるハンドラーを示します。

Copy
package example; import com.amazonaws.services.lambda.runtime.Context; public class HelloPojo { // Define two classes/POJOs for use with Lambda function. public static class RequestClass { ... } public static class ResponseClass { ... } public static ResponseClass myHandler(RequestClass request, Context context) { String greetingString = String.format("Hello %s, %s.", request.getFirstName(), request.getLastName()); return new ResponseClass(greetingString); } }

AWS Lambda は、標準のビーン命名規則に基づいてシリアル化します (「Java EE 6 チュートリアル」を参照)。パブリックゲッターおよびセッターとともに可変 POJO を使用する必要があります。

注記

注釈などのシリアル化フレームワークの他の機能に依存しないでください。シリアル化動作をカスタマイズする必要がある場合は、実際のバイトストリームを使って、独自のシリアル化を使用できます。

入出力に POJO を使用する場合は、RequestClass タイプおよび ResponseClass タイプの実装を提供する必要があります。例については、「例: ハンドラーの入出力に POJO を使用する (Java)」を参照してください。