/vertx-aws-lambda

AWS Lambda adapter for Vert.x web applications

Primary LanguageJavaApache License 2.0Apache-2.0

AWS Lambda adapter for Vert.x web applications

This adapter allows you to run a Vert.x web application as a Lambda function on AWS. LambdaServer class is provided which implements io.vertx.core.http.HttpServer interface. This LambdaServer is a replacement for the Netty-based HttpServer that is built into Vert.x. LambdaServer translates an incoming Lambda event into the HttpServerRequest which is then processed by the callbacks you have registered. The resulting HttpServerResponse is handed back to the Lambda runtime. Checkout the sample application to get a better idea about how it works.

You can build this adapter along with the sample application by issuing:

mvn package

The response body generated by the LambdaServer is always base64 encoded. You have to configure your API gateway to decode the response from the LambdaServer before forwarding it back to the client. In your API gateway configuration, go to Binary Support and add a binary media type: */*.

Caveats

  • As of now, AWS Lambda doesn't support multiple values for a single HTTP query parameter
  • As of now, AWS Lambda doesn't support HTTP chunked responses