Aplicaciones de ejemplo de Java para AWS Lambda - AWS Lambda

Aplicaciones de ejemplo de Java para AWS Lambda

El repositorio de GitHub para esta guía ofrece aplicaciones de ejemplo en las que se muestra el uso de Java en AWS Lambda. Cada una de las aplicaciones de ejemplo contiene scripts para facilitar la implementación y la limpieza, una plantilla de AWS CloudFormation y recursos de soporte.

Aplicaciones de Lambda de ejemplo en Java

  • blank-java – función de Java que muestra el uso de bibliotecas de Java de Lambda, el registro, las variables de entorno, las capas, el seguimiento de AWS X-Ray, las pruebas unitarias y el AWS SDK.

  • java-basic: función de Java mínima con pruebas unitarias y configuración de registro de variables.

  • java-events – función de Java mínima que utiliza la biblioteca aws-lambda-java-events con tipos de eventos que no requieren el SDK AWS como dependencia, como Amazon API Gateway.

  • java-events-v1sdk – Función Java que utiliza la biblioteca aws-lambda-java-events con tipos de eventos que requieren el AWS SDK como una dependenciaAmazon Simple Storage Service ((Amazon S3) Amazon DynamoDB, y Amazon Kinesis).

  • s3-java: función de Java que procesa los eventos de notificación de Amazon S3 y utiliza Java Class Library (JCL) para crear miniaturas de los archivos de imagen cargados.

Utilice la aplicación de ejemplo de blank-java para aprender los conceptos básicos o como punto de partida para su propia aplicación. Muestra el uso de las bibliotecas Java de Lambda, las variables de entorno, el SDK de AWS y el SDK de AWS X-Ray. Utiliza una capa de Lambda para empaquetar sus dependencias por separado del código de función, lo que acelera los tiempos de implementación cuando está iterando en su código de función. El proyecto requiere una configuración mínima y se puede implementar desde la línea de comandos en menos de un minuto.


          Blank sample application for Java.

Las demás aplicaciones de ejemplo muestran otras configuraciones de compilación, interfaces de controlador y casos de uso para servicios que se integran con Lambda. El ejemplo de java-basic muestra una función con dependencias mínimas. Puede utilizar este ejemplo para los casos en los que no necesite bibliotecas adicionales como el SDK de AWS y puede representar la entrada y la salida de su función con tipos Java estándar. Para probar un tipo de controlador diferente, puede cambiar simplemente la configuración del controlador en la función.

ejemplo java-basic/src/main/java/example/HandlerStream.java –: controlador de flujo.

// Handler value: example.HandlerStream public class HandlerStream implements RequestStreamHandler { Gson gson = new GsonBuilder().setPrettyPrinting().create(); @Override public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException { LambdaLogger logger = context.getLogger(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, Charset.forName("US-ASCII"))); PrintWriter writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(outputStream, Charset.forName("US-ASCII")))); try { HashMap event = gson.fromJson(reader, HashMap.class); logger.log("STREAM TYPE: " + inputStream.getClass().toString()); logger.log("EVENT TYPE: " + event.getClass().toString()); writer.write(gson.toJson(event)); ...

Los ejemplos java-events y java-events-v1sdk muestran el uso de los tipos de evento proporcionados por la biblioteca aws-lambda-java-events. Estos tipos representan los documentos de eventos que los servicios de AWS envían a su función. java-events incluye controladores para tipos que no requieren dependencias adicionales. Para tipos de eventos como DynamodbEvent que requieren tipos de AWS SDK for Java, java-events-v1sdk incluye el SDK en su configuración de compilación.

ejemplo java-events-v1sdk/src/main/java/example/HandlerDynamoDB.java – DynamoDBregistros.

import com.amazonaws.services.lambda.runtime.events.DynamodbEvent; import com.amazonaws.services.lambda.runtime.events.DynamodbEvent.DynamodbStreamRecord; import com.amazonaws.services.dynamodbv2.model.Record; ... // Handler value: example.HandlerDynamoDB public class HandlerDynamoDB implements RequestHandler<DynamodbEvent, String>{ private static final Logger logger = LoggerFactory.getLogger(HandlerDynamoDB.class); Gson gson = new GsonBuilder().setPrettyPrinting().create(); @Override public String handleRequest(DynamodbEvent event, Context context) { String response = new String("200 OK"); for (DynamodbStreamRecord record : event.getRecords()){ logger.info(record.getEventID()); logger.info(record.getEventName()); logger.info(record.getDynamodb().toString()); } ...

Para conocer más detalles, consulte los otros temas de este capítulo.