Primeros pasos con aws-lambda

Instalación o configuración

  1. Inicie sesión en su consola de AWS y haga clic en Lambda debajo del Services tab.

  2. En Funciones podrá Crear una función Lambda usando el botón con la misma etiqueta. ingrese la descripción de la imagen aquí

  3. Se le mostrará una pantalla donde puede seleccionar un plano. Estos son simplemente puntos de partida para las funciones Lambda existentes para comenzar rápidamente con Lambda. ingrese la descripción de la imagen aquí

  4. En la pantalla siguiente, puede configurar los activadores que desee utilizar para “desactivar” esta función de Lambda. Puede elegir entre ningún disparador (a través de la configuración manual más adelante según su tarea), API Gateway (para crear un cliente REST sin servidor), Alexa Skills o una gran cantidad de otros para activar la función que creará. ingrese la descripción de la imagen aquí

  5. Terminará la configuración en la pantalla siguiente configurando el Nombre, la Descripción, eligiendo un Tiempo de ejecución, optando por editar la función en línea, cargar un archivo .zip o cargar un de Amazon S3, elija un Rol (útil para la interacción basada en permisos entre los servicios de AWS), establezca la memoria y los límites, y prepare su aplicación para su uso en vivo. ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

  6. Por último, revisará su función y la creará. Dado que Lambda utiliza el modelo de pago por uso, no se incurre en cargos hasta que comience a usar la función recién creada. ingrese la descripción de la imagen aquí

Java AWS-Lambda S3 activado

Se puede adjuntar una función de AWS-Lambda a un determinado evento de depósito. Cada vez que se crea o elimina un archivo/carpeta, un evento puede desencadenar la ejecución de la función lambda.

Una función Lambda simple para imprimir el nombre de un archivo cargado

Este es un proyecto lambda de una clase para imprimir el nombre de un archivo cargado. Para maven necesitamos agregar esas dependencias:

    <dependencies>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-lambda-java-core</artifactId>
        <version>1.1.0</version>
        <type>jar</type>
    </dependency>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-lambda-java-events</artifactId>
        <version>1.3.0</version>
        <type>jar</type>
    </dependency>
</dependencies>

Ahora vamos a nuestra clase HelloWorld:

package com;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.S3Event;
import com.amazonaws.services.s3.event.S3EventNotification;

public class HelloWorld implements RequestHandler< S3Event, String> {
    @Override
    public String handleRequest(S3Event event, Context ctx) {
     S3EventNotification.S3EventNotificationRecord record=event.getRecords().get(0);
     System.out.println("Bucket Name is "+record.getS3().getBucket().getName());
     System.out.println("File Path is "+record.getS3().getObject().getKey());
     return null;
    }
}

El siguiente paso es construir el proyecto usando mvn.

Después de compilar el proyecto, debemos cargarlo en AWS-Lambda. Vaya a Lambda, elija “crear una función lambda”. Omita la parte donde elige el modelo, porque Java generalmente no está allí.

Además, omita “Configurar disparadores” porque lo configuraremos desde una ubicación diferente. En la página siguiente, ingrese un nombre para su primera función lambda, luego una pequeña descripción y elija Java como tiempo de ejecución.

Para el “Tipo de entrada de código”, elija “Cargar desde un archivo .ZIP” y luego seleccione su archivo .zip en la siguiente ubicación para cargarlo.

La parte complicada de esta página es el campo Manejador. En el campo del controlador, debe especificar la ubicación de la clase que implementa RequestHandler. Esta clase es el punto de entrada para la lambda y su función Lambda no funcionará si no se especifica correctamente. Para nuestro manejador de casos es “com.HelloWorld”

Adjuntar un disparador S3 a Lambda:

Aquí adjuntaremos un disparador a la carga del archivo S3

  • Vaya a S3, elija el depósito, luego “Propiedades”.
  • En la sección “Propiedades”, ve a “Eventos”.
  • Agregar detalles del evento. En el campo “Eventos”, elija cómo desea activar su Lambda. Elegiremos “ObjectCreated(All)” Tenga en cuenta que la función lambda y el depósito deben estar en la misma región de Amazon
  • Para “Enviar a”, marque Función Lambda y elija su función lambda de la lista.

Supervisión de la salida lambda

Ahora, cargaremos un archivo en el depósito que tiene el disparador lambda. Para ver las salidas y los registros de lambda, vaya a “CloudWatch”, luego elija “Registros” y luego elija su función Lambda. Es posible que vea muchas entradas en “Transmisiones de registros”, elija la última y ábrala. Debería poder ver el resultado de la ejecución de lambda allí.