<aside> 💡

java-basicのハンドラクラスを触ってみる

</aside>

Handler.java

// Handler value: example.Handler
public class Handler implements RequestHandler<Map<String,String>, Void>{

  @Override
  public Void handleRequest(Map<String,String> event, Context context)
  {
    LambdaLogger logger = context.getLogger();
    logger.log("EVENT TYPE: " + event.getClass());
    return null;
  }
}

@Override

これは親クラスやインターフェースのメソッドをオーバーライド(上書き)しますよっていうアノテーション。

この場合、AWSの RequestHandler インターフェースの handleRequest メソッドを上書きしてる。


public Void handleRequest(Map<String,String> event, Context context)

ジェネリクス(Generics)の仕組みを使った型付きのMap(連想配列・辞書型)

Javaの Map<String, String> は、

でペアを保存する箱

public Void handleRequest(Map<String,String> event, Context context) ここで event は「リクエストパラメータを入れたMap(辞書)」になってる。 つまり、Lambdaにリクエストが来たとき、 リクエストボディの中身がMapに変換されて受け取れるってわけ!

例えば、リクエストボディがこんなだったら: