¿Qué es AWS Lambda? Lambda con ejemplos

Antes de entender que es la función de AWS Lambda, debes comprender que es el concepto de serverless.

¿Qué es Serverless?

El término serverless o “sin servidor” 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 para poder utilizarse.

¿Qué es AWS Lambda?

AWS Lambda

es una plataforma informática sin servidor impulsada por eventos proporcionada por Amazon como parte de Amazon Web Services.

Por lo tanto, no necesitas preocuparte de los recursos de AWS lanza o cómo los administra.

En su lugar, debes utilizar el código de Lambda.

En AWS Lambda, el código se ejecuta en función de la respuesta de eventos en los servicios de AWS, como agregar o eliminar archivos en el bucket de S3, solicitudes HTTP desde la puerta de enlace de la API de Amazon, etc.

Sin embargo, Amazon Lambda solo se puede utilizar para ejecutar tareas en segundo plano.

La función de AWS Lambda ayuda a concentrarse en un producto principal y en la lógica comercial en lugar de administrar el control de acceso del sistema operativo (SO), la aplicación de parches del Sistema Operativo, el dimensionamiento correcto, el aprovisionamiento, el escalado, etc.

¿Cómo funciona AWS Lambda?

Para ejecutar AWS Lambda con diagrama de bloques deberás cargar el código de AWS Lambda en cualquier idioma admitido por AWS Lambda. Java, Python, Go y C# son algunos de los lenguajes que son compatibles con la función AWS Lambda.

Posteriormente, se te permitirá activar AWS Lambda. Desde el propio servicio, se te ayudará a cargar el código y los detalles del evento en el que quieras activarlo.

AWS Lambda Code se ejecutará cuando actives los servicios de AWS y AWS cobrará solamente cuando se ejecute el código de AWS Lambda, y no durante el resto del tiempo.

Eventos que activan 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 siempre que se agreguen, modifiquen y eliminen datos en la tabla.
  • Le ayuda a programar el evento para llevar a cabo la tarea en un patrón de tiempo regular.
  • Modificaciones a objetos en depósitos de S3.
  • Notificaciones enviadas desde Amazon SNS.
  • AWS Lambda se puede utilizar para procesar los registros de CloudTrail.
  • API Gateway le permite activar AWS Lambda en métodos GET / POST.

Conceptos de AWS Lambda

Función

:

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

Tiempos de ejecución:

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

Fuente del evento:

Una fuente de eventos es un servicio de AWS, como Amazon SNS, o un servicio personalizado. Esta función de disparadores ayuda a ejecutar la lógica.

Capas Lambda:

Las capas Lambda son un mecanismo de distribución importante para las bibliotecas, los tiempos de ejecución personalizados y otras dependencias de funciones importantes.

Este componente de AWS también ayuda a administrar el código de función de desarrollo por separado del código invariable y los recursos que se utilizan.

Flujos de registro:

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

¿Cómo utilizar AWS Lambda?

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

Paso 1: Visita amazon.com/lambda.
Paso 2: Crea una cuenta o inicie sesión con tu cuenta existente de Amazon Web Services.
Paso 3: En la siguiente página de AWS Lambda: Edita el código y Haz clic en Ejecutar.

AWS Lambda frente a AWS EC2

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

Parámetros AWS Lambda AWS EC2
Definición AWS Lambda es una plataforma como servicio (PaaS). Que ayuda a ejecutar el código de backend. AWS EC2 es una infraestructura como servicio (laaS) que proporciona recursos informáticos virtualizados.
Flexibilidad No ofrece ninguna flexibilidad para iniciar sesión y calcular instancias. Permite elegir un sistema operativo personalizado o un tiempo de ejecución de idioma. Ofrece la flexibilidad de seleccionar la variedad de instancias, sistemas operativos personalizados, parches de seguridad y red, etc.
Proceso de instalación Debes seleccionar el entorno en el que deseas ejecutar el código e insertarlo en AWS Lambda. La primera vez en EC2, debes elegir el sistema operativo e instalar todo el software requerido y luego insertar tu código en EC2.
Restricciones de ambiente Está restringido a pocos idiomas. Sin restricciones.

AWS Lambda frente a AWS Elastic Beanstalk

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

Parámetros AWS Elastic Beanstalk AWS Lambda
Tarea principal Administra e implementa las aplicaciones en AWS Cloud sin preocuparte por la infraestructura que ejecuta esas aplicaciones. AWS Lambda se utiliza para ejecutar el código de back-end. No puedes usarlo para implementar una aplicación.
Selección de recursos de AWS Da libertad para seleccionar recursos de AWS. Por ejemplo, puede elegir la instancia EC2 que sea óptima según tu aplicación. No puedes seleccionar los recursos de AWS, como un tipo de instancia EC2, Lambda ofrece recursos según tu 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:

  • Ayuda para el proceso ETL.
  • Permite realizar procesamiento de archivos en tiempo real y procesamiento de secuencias en tiempo real.
  • Puedes utilizarlo para crear aplicaciones web.
  • Puedes utilizarlo en productos de Amazon como Alexa Chatbots y Amazon Echo / Alexa.
  • Procesamiento de datos (análisis de transmisión en tiempo real).
  • Copias de seguridad automatizadas de las tareas diarias.
  • Backends escalables (aplicaciones móviles, dispositivos loT).
  • Ayuda a ejecutar la lógica de backend del lado del servidor.
  • Permite filtrar y transformar datos.

Mejores prácticas de la función Lambda

A continuación, se muestran algunas de las mejores prácticas de las funciones de AWS Lambda:

  • Utiliza el “tiempo de espera” correcto.
  • Utiliza las funciones de almacenamiento local que tienen un tamaño de 500 MB en la carpeta /temp.
  • Minimiza el uso de código de inicio que no está directamente relacionado con el procesamiento del evento actual.
  • Debes utilizar la supervisión integrada de CloudWatch de las funciones de Lambda para ver y optimizar las latencias de las solicitudes.

¿Cuándo no utilizar AWS Lambda?

A continuación se muestra la situación en la que Lambda seguramente no es una opción ideal:

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

Ventajas de usar AWS Lambda

A continuación, se muestran las ventajas y los beneficios de utilizar AWS lambda:

  • AWS Lambda es una herramienta de uso muy flexible
  • Le ayuda a otorgar acceso a los recursos, incluidas las VPC.
  • Cree directamente con el editor WYSIWYG en la consola.
  • Puede usarlo como complemento para Eclipse y Visual Studio.
  • Como se trata de una arquitectura sin servidor, no necesita preocuparse por administrar o aprovisionar servidores.
  • No es necesario configurar ninguna máquina virtual.
  • Ayuda a los desarrolladores a ejecutar y ejecutar la respuesta del código a los eventos sin construir ninguna infraestructura.
  • Solo necesita hacerlo por 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 o administrar cualquier otro servidor
  • Le ayuda a ejecutar el código solo cuando es 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 de Lambda no tienen estado, por lo que se pueden escalar rápidamente.
  • AWS Lambda es rápido, por lo que ejecutará su código en milisegundos.

Limitaciones de AWS Lambda

Estos son los contras / desventajas de usar 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 de Lambda lo ayudan a escribir sus registros solo en CloudWatch. Esta es la única herramienta que le permite monitorear o solucionar problemas de sus funciones.
  • Su tiempo de espera de ejecución de código es de solo 5 minutos.

Resumen

  • 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 o cómo los administrarán.
  • Una función es un programa o un script que se ejecuta en AWS Serverless Lambda.
  • El tiempo de ejecución permite funciones en varios lenguajes que se ejecutan en el mismo entorno de ejecución base.
  • Una fuente de eventos 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 registros 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 Lambda.
  • AWS Lambda es una plataforma como servicio (PaaS). Le ayuda a ejecutar y ejecutar su código de backend.
  • AWS EC2 es una infraestructura como servicio (laaS). Proporciona recursos informáticos virtualizados.
  • Implemente y administre las aplicaciones en AWS Cloud sin preocuparse por la infraestructura que ejecuta esas aplicaciones.
  • AWS Lambda se utiliza para ejecutar y ejecutar su código de back-end. No puede usarlo para implementar una aplicación.
  • AWS Lambda le ayuda con el proceso ETL.
  • La mejor práctica de la función Lambda en AWS es utilizar el “tiempo de espera” correcto.
  • No es apropiado utilizar aplicaciones o paquetes de software AWS Lambda que se basan en llamadas a RPC de Windows subyacentes.
  • 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 la tabla de datos de Dynamo DB.

Relacionados

Relacionado