Buscar..


Observaciones

AWS Lambda es una configuración sin servidor para ejecutar funciones en la nube. Aprovecha las tecnologías existentes de los servicios web de Amazon para escalar y ejecutar infinitamente solo cuando sea necesario en su propio entorno aislado. Con Lambda, puede cargar su código, configurarlo para que se ejecute en función de una variedad de desencadenantes y luego retirar automáticamente el proceso cuando se complete. Opera en un modelo de pago por uso y es extremadamente rentable y fácil de escalar.


AWS Lambda admite el código escrito en Node.js (JavaScript), Python, Java (compatible con Java 8) y C # (.NET Core). Su código puede incluir bibliotecas existentes, incluso las nativas.

Los desencadenantes pueden incluir:

Puntos finales HTTP

  • Aplicaciones móviles
  • Otros servicios de AWS (incluida la implementación REST con Amazon API Gateway)

Lambda está mejor diseñado para el procesamiento de datos sin servidor en tiempo real, como:

  • Procesamiento de archivos de cargas
    • Transcodificación
    • Indexación
    • Validación
    • Redimensionamiento y Filtrado
  • Análisis de datos de transmisión
  • Telemetria
  • Ejecutar como un backend web y móvil basado en métodos.
  • Extender y vincular otros productos de AWS.

Instalación o configuración

  1. Inicie sesión en su consola de AWS y haga clic en Lambda en la pestaña Servicios .

  2. En Funciones , podrás crear una función Lambda usando el mismo botón etiquetado. introduzca la descripción de la imagen aquí

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

  4. En la siguiente pantalla puede configurar cualquier desencadenante que desee utilizar para "desactivar" esta función Lambda. Puede elegir entre ningún desencadenante (a través de la configuración manual más tarde, dependiendo de su tarea), API Gateway (para crear un cliente REST sin servidor), Alexa Skills o una plétora de otros para activar la función que creará. introduzca la descripción de la imagen aquí

  5. Terminará la configuración en la siguiente pantalla al configurar el Nombre , la Descripción , elegir un Tiempo de ejecución , optar por editar la función en línea, cargar un archivo .zip o cargar un archivo desde Amazon S3, elegir un Rol (útil para permisos basados ​​en permisos). interacción entre los servicios de AWS), establezca la memoria y los límites, y prepare su aplicación para su uso en vivo. introduzca la descripción de la imagen aquí introduzca la descripción de la imagen aquí

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

Java AWS-Lambda S3 activado

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

Una simple función Lambda 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 construir el proyecto, necesitamos subirlo a AWS-Lambda. Vaya a Lambda, elija "crear una función lambda". Omita la parte en la que elija el plano, ya que Java generalmente no está allí.

Además, omita "Configurar activadores" 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 difícil en esta página es el campo Handler. En el campo del controlador, debe especificar la ubicación de la clase en la que implementa el 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"

Acoplando un disparador S3 a Lambda:

Aquí adjuntaremos un disparador a la carga del archivo S3.

  • Vaya a S3, elija el cubo, luego "Propiedades".
  • En la sección "Propiedades", vaya a "Eventos".
  • Añadir detalles del evento. En el campo "Eventos", elige cómo quieres activar tu 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", verifique la función Lambda y elija su función lambda de la lista.

Monitoreo de salida Lambda

Ahora, subiremos un archivo al contenedor que tiene el desencadenador lambda. Para ver los resultados y registros de lambda, vaya a "CloudWatch", luego elija "Registros", luego elija su función Lambda. Es posible que veas muchas entradas en "Log Streams", elige la última y ábrela. Debería poder ver la salida de la ejecución lambda allí.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow