Creación de funciones de Lambda con Java - AWS Lambda

Creación de funciones de Lambda con Java

Puede ejecutar Código Java en AWS Lambda. Lambda proporciona tiempos de ejecución para Java que ejecutan el código para procesar eventos. El código se ejecuta en un entorno de Amazon Linux que incluye credenciales de AWS de un rol de AWS Identity and Access Management (IAM) administrado por usted.

Lambda admite los siguientes entornos de ejecución de Java.

Runtimes de Java
Nombre Identificador JDK Sistema operativo

Java 11

java11

amazon-corretto-11

Amazon Linux 2

Java 8

java8.al2

amazon-corretto-8

Amazon Linux 2

Java 8

java8

java-1.8.0-openjdk

Amazon Linux

Las funciones de Lambda utilizan un rol de ejecución para obtener permiso para escribir registros en Amazon CloudWatch Logs y para tener acceso a otros servicios y recursos. Si aún no tiene un rol de ejecución para el desarrollo de funciones, cree uno.

Para crear un rol de ejecución

  1. Abra la página Roles en la consola de IAM.

  2. Elija Create role (Crear rol).

  3. Cree un rol con las propiedades siguientes.

    • Trusted entity (Entidad de confianza)Lambda.

    • PermisosAWSLambdaVPCAccessExecutionRole..

    • Role name (Nombre de rol): lambda-role.

    La política AWSLambdaVPCAccessExecutionRole tiene permisos que la función necesita para escribir registros a CloudWatch Logs.

Puede agregar permisos al rol más tarde o cambiarlo por otro rol específico para una sola función.

Para crear una función de Java

  1. Abra la consola de Lambda.

  2. Elija Create function (Crear función).

  3. Configure los siguientes ajustes:

    • Name (Nombre): my-function.

    • Runtime (Tiempo de ejecución): Java 11.

    • Role (Rol): Choose an existing role (Elija un rol existente).

    • Existing role (Rol existente): lambda-role.

  4. Elija Create function (Crear función).

  5. Para configurar un evento de prueba, seleccione Test (Prueba).

  6. Para Event name (Nombre de evento), escriba test.

  7. Seleccione Create (Crear).

  8. Para invocar la función, elija Test (Probar).

La consola crea una función de Lambda con una clase de controlador denominada Hello. Dado que Java es un lenguaje compilado, no puede ver ni editar el código fuente en la consola de Lambda, pero puede modificar su configuración, invocarla y configurar disparadores.

nota

Para comenzar con el desarrollo de aplicaciones en su entorno local, implemente una de las aplicaciones de ejemplo disponibles en el repositorio de GitHub de esta guía.

La clase Hello cuenta con una función denominada handleRequest que toma un objeto de evento y un objeto context. Esta es la función de controlador a la que llama Lambda cuando se invoca la función. El tiempo de ejecución de la función de Java obtiene los eventos de invocación de Lambda y se los pasa al controlador. En la configuración de función, el valor de controlador es example.Hello::handleRequest.

Para actualizar el código de la función, se crea un paquete de implementación, que es un archivado mediante archivos .zip que contiene el código de la función. A medida que avanza su función de desarrollo, querrá almacenar su código de función en el control del código fuente, agregar bibliotecas y automatizar las implementaciones. Comience creando un paquete de implementación y actualizando el código en la línea de comandos.

El tiempo de ejecución de la función pasa un objeto context al controlador, además del evento de invocación. El objeto context contiene información adicional acerca de la invocación, la función y el entorno de ejecución. Más información disponible en las variables de entorno.

La función de Lambda incluye un grupo de registros de CloudWatch Logs. El tiempo de ejecución de la función envía detalles sobre cada invocación a CloudWatch Logs. Retransmite cualquier registro que genere la función durante la invocación. Si la función devuelve un error, Lambda formatea el error y se lo devuelve al invocador.