¿Qué es AWS Lambda? Función Lambda con ejemplos

Antes de la función AWS Lambda, comprendamos:

¿Qué es Serverless?

Sin servidor es un término que generalmente se refiere a aplicaciones sin servidor. Las aplicaciones sin servidor son aquellas que no necesitan ninguna provisión de servidor y no requieren administrar servidores.

¿Qué es AWS Lambda?

AWS Lambda es una plataforma informática sin servidor basada en eventos proporcionada por Amazon como parte de Amazon Servicios web. Por lo tanto, no necesita preocuparse por qué recursos de AWS lanzar ni cómo los administrará. En su lugar, debe colocar el código en Lambda y se ejecutará.

En AWS Lambda, el código se ejecuta en función de la respuesta de eventos en los servicios de AWS, como agregar/eliminar archivos en el depósito S3, solicitud HTTP de Amazon Puerta de enlace API, etc. Sin embargo, Amazon Lambda solo se puede utilizar para ejecutar tareas en segundo plano.

La función AWS Lambda le ayuda a centrarse en su producto principal y en la lógica empresarial en lugar de gestionar el control de acceso al sistema operativo (SO), la aplicación de parches del SO, el dimensionamiento adecuado, el aprovisionamiento, el escalamiento, etc.

¿Cómo funciona AWS Lambda?

El siguiente ejemplo de AWS Lambda con diagrama de bloques explica el funcionamiento de AWS Lambda en unos sencillos pasos:

Diagrama de bloques de AWS Lambda
Diagrama de bloques de AWS Lambda

Paso 1: Primero cargue su código AWS Lambda en cualquier idioma admitido por AWS Lambda. Java, Python, Go y C# son algunos de los lenguajes admitidos por la función AWS Lambda.

Paso 2: Estos son algunos servicios de AWS que le permiten activar AWS Lambda.

Paso 3: AWS Lambda le ayuda a cargar el código y los detalles del evento en el que debe activarse.

Paso 4: Ejecuta el código AWS Lambda cuando lo activan los servicios de AWS:

Paso 5: AWS cobra únicamente cuando se ejecuta el código lambda de AWS, y no en caso contrario.

Esto sucederá en los siguientes escenarios:

  • Cargar archivos en un depósito S3
  • Cuando se accede a la URL del punto final HTTP get/post
  • Para agregar/modificar y eliminar tablas de Dynamo DB
  • En el proceso de recopilación de flujos de datos.
  • Notificación de inserción
  • Alojamiento de sitio web
  • Envío de correo electrónico

Nota: Debe recordar que cobrará por los servicios de AWS solo cuando se ejecute el código AWS Lambda; de lo contrario, no necesitará pagar nada.

Eventos que desencadenan AWS Lambda

A continuación se muestran los eventos que se activarán cuando utilice AWS Lambda.

  • Insertar, actualizar y eliminar datos de la tabla Dynamo DB
  • Para incluir notificaciones push en SNS
  • Para buscar el historial de registros en CloudTrail
  • Entrada en un objeto S3
  • DynamoDB puede activar AWS Lambda cada vez que se agregan, modifican y eliminan datos en la tabla.
  • Le ayuda a programar el evento para realizar la tarea en el horario habitual.
  • Modificaciones a objetos en depósitos de S3
  • Notificaciones enviadas desde Amazon S.N.S.
  • AWS Lambda se puede utilizar para procesar los registros de CloudTrail
  • API Gateway le permite activar AWS Lambda en métodos GET/POST.

AWS Lambda Concepts

Función:

Una función es un programa o script que se ejecuta en AWS Lambda. Lambda pasa eventos de invocación a su función, que procesa un evento y devuelve su respuesta.

Tiempos de ejecución:

Runtime permite funciones en varios lenguajes que se ejecutan en el mismo entorno de ejecución base. Esto le ayuda a configurar su función en tiempo de ejecución. También coincide con tu seleccionado lenguaje de programación.

Fuente del evento:

Un origen de evento es un servicio de AWS, como Amazon SNS o un servicio personalizado. Esta función de activación le ayuda a ejecutar su lógica.

Capas Lambda:

Las capas Lambda son un mecanismo de distribución importante para bibliotecas, tiempos de ejecución personalizados y otras dependencias de funciones importantes. Este componente de AWS también le ayuda a administrar el código de su función de desarrollo por separado del código inmutable y los recursos que utiliza.

Secuencias de registros:

El flujo de registro le permite anotar su código de función con declaraciones de registro personalizadas que le ayudan a analizar el flujo de ejecución y el rendimiento de sus funciones de AWS Lambda.

Cómo utilizar AWS Lambda

Ahora, aprenderemos cómo utilizar AWS Lambda con el ejemplo de AWS Lambda:

Paso 1) Paso 1) Abra la URL de AWS Lambda
Ir https://aws.amazon.com/lambda/ y empezar

Cómo utilizar AWS Lambda

Paso 2) Crea una cuenta
A continuación, cree una cuenta o inicie sesión con su cuenta existente.

Paso 3) Edite el código y haga clic en Ejecutar,
En la siguiente página de Lambda,

  1. Edita el código
  2. Haga clic en ejecutar

Cómo utilizar AWS Lambda

Paso 4) Comprobar salida
Verás la salida

Cómo utilizar AWS Lambda

AWS Lambda frente a AWS EC2

A continuación se presentan algunas diferencias importantes entre AWS Lambda y EC2.

parámetros AWS Lambda AWS EC2
Definición AWS Lambda es una plataforma como servicio (PaaS). Le ayuda a ejecutar y ejecutar su código backend. AWS EC2 es una infraestructura como servicio (laaS). Proporciona recursos informáticos virtualizados.
Flexibilidad No ofrece ninguna flexibilidad para iniciar sesión en instancias de cómputo. Le permite elegir un sistema operativo personalizado o un entorno de ejecución de lenguaje. Ofrece la flexibilidad de seleccionar la variedad de instancias, sistemas operativos personalizados, parches de seguridad y red, etc.
Proceso de instalación Debe seleccionar el entorno en el que desea ejecutar el código e insertarlo en AWS Lambda. Por primera vez en EC2, debe elegir el sistema operativo e instalar todo el software necesario y luego insertar su código en EC2.
Restricciones ambientales Está restringido a unos pocos idiomas. Sin restricciones ambientales.

AWS Lambda frente a AWS Elastic Beanstalk

A continuación se presentan algunas diferencias importantes entre AWS Lambda y Elastic Beanstalk.

parámetros Beanstalk elástico de AWS AWS Lambda
Tarea principal Implemente y administre las aplicaciones en la nube de AWS sin preocuparse por la infraestructura que ejecuta esas aplicaciones. AWS Lambda se utiliza para ejecutar y ejecutar su código back-end. No puede usarlo para implementar una aplicación.
Selección de recursos de AWS Le brinda libertad para seleccionar recursos de AWS; Por ejemplo, puede elegir la instancia EC2 que sea óptima según su aplicación. No puede seleccionar los recursos de AWS, como un tipo de instancia EC2, Lambda ofrece recursos según su carga de trabajo.
Tipo de sistema Es un sistema con estado. Es un sistema sin Estado.

Casos de uso de AWS Lambda

AWS Lambda se utiliza para una amplia gama de aplicaciones como:

  • Le ayuda con el proceso ETL
  • Le permite realizar procesamiento de archivos en tiempo real y procesamiento de secuencias en tiempo real.
  • Uso para crear aplicaciones web.
  • Usa en Amazon productos como Alexa Chatbots y Amazon Eco/Alexa
  • Procesamiento de datos (análisis de transmisión en tiempo real)
  • Copias de seguridad automatizadas de tareas cotidianas
  • Backends escalables (aplicaciones móviles, dispositivos mucho)
  • Le ayuda a ejecutar la lógica backend del lado del servidor
  • Le permite filtrar y transformar datos.

Mejores prácticas de la función Lambda

Estas son algunas de las mejores prácticas de AWS Funciones lambda:

  • Utilice el "tiempo de espera" correcto.
  • Utilice las funciones de almacenamiento local que tiene un tamaño de 500 MB en la carpeta /temp
  • Minimizar el uso de código de inicio que no está directamente relacionado con el procesamiento del evento actual.
  • Debe utilizar el monitoreo integrado de CloudWatch de sus funciones Lambda para ver y optimizar las latencias de las solicitudes.

Cuándo no utilizar AWS Lambda

Las siguientes son situaciones en las que Lambda seguramente no es una opción ideal:

  • No es apropiado utilizar paquetes o aplicaciones de software AWS Lambda que dependan de llamadas subyacentes. Windows ERT
  • Si se utiliza para aplicaciones de software personalizadas con acuerdos de licencia, como el procesamiento de documentos de MS-Office, Oracle bases de datos, etc.
  • AWS Lambda no debe utilizarse para procesos de hardware personalizados, como aceleración de GPU o afinidad de hardware.

Ventajas de utilizar AWS Lambda

A continuación se detallan las ventajas y beneficios de utilizar AWS lambda:

  • AWS Lambda es una herramienta muy flexible de usar
  • Le ayuda a otorgar acceso a recursos, incluidas las VPC.
  • Autor directamente con WYSIWeditor de YG en consola.
  • Puedes usarlo como complemento para Eclipse y Visual Studio.
  • Como es una arquitectura sin servidor, no necesita preocuparse por administrar o aprovisionar servidores.
  • No es necesario configurar ningún Virtual Machine.
  • Ayuda a los desarrolladores a ejecutar la respuesta del código a eventos sin construir ninguna infraestructura.
  • Solo necesita hacerlo durante el tiempo de cálculo necesario, solo cuando se ejecuta su código.
  • Puede monitorear el rendimiento de su código en tiempo real a través de CloudWatch.
  • Le permite ejecutar su código sin aprovisionar ni administrar ningún otro servidor.
  • Le ayuda a ejecutar el código solo cuando sea necesario
  • Puede escalarlo automáticamente para manejar algunas solicitudes por día e incluso admitir más de miles de solicitudes por segundo.
  • AWS Lambda se puede configurar con la ayuda de temporizadores de eventos externos para realizar tareas programadas.
  • La función Lambda en AWS debe configurarse con eventos externos y temporizadores; se puede utilizar para programar.
  • Las funciones Lambda no tienen estado para que se puedan escalar rápidamente.
  • AWS Lambda es rápido, por lo que ejecutará su código en milisegundos.

Limitaciones de AWS Lambda

Estas son las desventajas de utilizar AWS Lambda:

  • La herramienta AWS Lambda no es adecuada para proyectos pequeños.
  • AWS Lambda depende completamente de AWS para la infraestructura, por lo que no puede instalar ningún software adicional si su código lo exige.
  • La ejecución simultánea está limitada a 100
  • AWS Lambda dependía completamente de AWS para la infraestructura; No puede instalar ningún software adicional si su código lo exige.
  • Su volumen de memoria puede variar entre 128 y 1536 MB.
  • La solicitud de evento no debe exceder los 128 KB.
  • Las funciones Lambda le ayudan a escribir sus registros solo en CloudWatch. Esta es la única herramienta que le permite monitorear o solucionar problemas de sus funciones.
  • El tiempo de espera de ejecución de su código es de sólo 5 minutos.

Resum

  • Sin servidor es un término que generalmente se refiere a aplicaciones sin servidor.
  • AWS Lambda es uno de esos servicios informáticos sin servidor. Por lo tanto, no necesita preocuparse por qué recursos de AWS lanzar ni cómo los administrarán.
  • Una función es un programa o script que se ejecuta en AWS Lambda sin servidor.
  • Runtime permite funciones en varios lenguajes que se ejecutan en el mismo entorno de ejecución base.
  • Un origen de evento es un servicio de AWS, como Amazon SNS o un servicio personalizado.
  • Las capas Lambda son un mecanismo de distribución importante para bibliotecas, tiempos de ejecución personalizados y otras dependencias de funciones importantes.
  • El flujo de registro le permite anotar el código de su función con declaraciones de registro personalizadas que le ayudan a analizar el flujo de ejecución y el rendimiento de sus funciones Lambda.
  • AWS Lambda es una plataforma como servicio (PaaS). Le ayuda a ejecutar y ejecutar su código backend.
  • AWS EC2 es una infraestructura como servicio (laaS). Proporciona recursos informáticos virtualizados.
  • Implemente y administre las aplicaciones en la nube de AWS sin preocuparse por la infraestructura que ejecuta esas aplicaciones.
  • AWS Lambda se utiliza para ejecutar y ejecutar su código back-end. No puede usarlo para implementar una aplicación.
  • AWS Lambda le ayuda a Proceso ETL.
  • La mejor práctica de la función Lambda en AWS es utilizar el "tiempo de espera" correcto.
  • No es apropiado utilizar paquetes o aplicaciones de software AWS Lambda que dependan de llamadas subyacentes. Windows ERT
  • AWS Lambda es una herramienta muy flexible.
  • La herramienta AWS Lambda no es adecuada para proyectos pequeños.
  • Un evento común que se activará cuando utilice AWS Lambda es Insertar, actualizar y eliminar datos de la tabla Dynamo DB.