This is the demo code for a talk on improving cold startup times for JVM-based lambdas using GraalVM and Custom AWS Lambda Runtimes.
The presentation slides can be found here - https://gitpitch.com/mduesterhoeft/kotlin-graalvm-custom-aws-lambda-runtime-talk#/
The master
branch contains a runnable sample of an application that exposes the same handler and exposes it via the standard java11
runtime and a custom runtime.
To build and deploy the function run the following:
# build the GraalVM native image and package the runime
./package.sh
# deploy the application
serverless deploy
Invoke the function running the java11
runtime
http https://<function-host>/dev/hello/sample
Invoke the function running the custom
runtime
http https://<function-host>/dev/hello-runtime/sample
An extended example that adds DynamoDB to the sample can be found in the dynamodb branch.
The dynamodb-agent branch builds on the DynamoDB example and shows how to use the GraalVM native image trace agent (aka assisted configuration).