Demo para utilizar una aplicación Spring Boot con AWS Lambda functions y RDS
Modificar el fichero application.properties y añadir el hostname y credenciales de la BD que se quiera utilizar (por ejemplo, la de una instancia RDS).
Lanzar la aplicación con:
./mvnw spring-boot:run
Desde otra sesión de la terminal, se puede probar con comandos como:
curl localhost:8080/saveItem -H "Content-Type: application/json" -d '{"itemName": "book", "number": 100}'
o
curl localhost:8080/reserve -H "Content-Type: application/json" -d '{"itemName": "book", "number": 1}'
Es necesario configurar antes de nada la instancia de RDS y modificar el fichero application.properties con el hostname y credenciales.
Para generar los archivos necesarios para S3:
./mvnw clean package
Como cada función Lambda solo puede ejecutar una función, habrá que crear una para cada una que contenga nuestra aplicación:
-
Subimos a un bucket de S3 el fichero acabado en
-aws.jar
. -
Creamos una Lambda function utilizando el runtime Java 8 y la dirección del bucket S3 con el fichero
-aws.jar
que hemos subido. -
Configurar el handler para que sea `org.springframework.cloud.function.adapter.aws.FunctionInvoker::handleRequest``
-
Modificar la memoria y el timeout a
1024MB
y45s
respectivamente. -
Añadir una variable de entorno llamada
spring_cloud_function_definition
con el nombre de la función que queramos ejecutar (por ejemplo,reserve
).
Repetir pasos 2-5 por cada función que queramos.