AWS Lambda: descripción general
AWS Lambdaes un servicio que realiza computación sin servidor, lo que implica computación sin ningún servidor. El código se ejecuta en función de la respuesta de eventos en los servicios de AWS, como agregar / eliminar archivos en el bucket de S3, actualizar las tablas de dB de Amazon dynamo, solicitud HTTP desde la puerta de enlace de la API de Amazon, etc.
Para empezar a trabajar con AWS Lambda, solo tenemos que insertar el código en el servicio AWS Lambda. AWS se encarga de todas las demás tareas y recursos, como la infraestructura, el sistema operativo, el mantenimiento del servidor, la supervisión del código, los registros y la seguridad.
AWS Lambdaadmite lenguajes como Java, NodeJS, Python, C # y Go. Tenga en cuenta que AWS Lambda solo funcionará con los servicios de AWS.
¿Qué es AWS Lambda?
La definición de AWS Lambda dada por su documentación oficial es la siguiente:
AWS Lambda es un servicio informático que le permite ejecutar código sin aprovisionar ni administrar servidores. AWS Lambda ejecuta su código solo cuando es necesario y escala automáticamente, desde unas pocas solicitudes por día hasta miles por segundo. Solo paga por el tiempo de cálculo que consume; no hay ningún cargo cuando su código no se está ejecutando.
¿Cómo funciona AWS Lambda?
El diagrama de bloques que explica el funcionamiento de AWS Lambda en cinco sencillos pasos se muestra a continuación:
Step 1 − Cargue el código lambda de AWS en cualquiera de los lenguajes que admite AWS lambda, es decir, NodeJS, Java, Python, C # y Go.
Step 2 − Estos son algunos servicios de AWS en los que se puede activar AWS lambda.
Step 3 −AWS Lambda, que tiene el código de carga y los detalles del evento en el que se produjo el desencadenante. Por ejemplo, evento de Amazon S3, Amazon API Gateway, Dynamo dB, Amazon SNS, Amazon Kinesis, CloudFront, Amazon SES, CloudTrail, aplicación móvil, etc.
Step 4 − Ejecuta AWS Lambda Code solo cuando lo activan los servicios de AWS en escenarios como:
- El usuario carga archivos en el depósito de S3
- http get / post endpoint URL is hit
- Los datos se agregan / actualizan / eliminan en las tablas de dB de dinamo
- notificación de inserción
- recopilación de flujos de datos
- alojamiento de sitio web
- envío de correo electrónico
- aplicación móvil, etc.
Step 5 − Recuerde que AWS cobra solo cuando se ejecuta el código lambda de AWS, y no de otro modo.
Ventajas de usar AWS Lambda
AWS Lambda ofrece múltiples beneficios cuando trabaja en él. Esta sección los analiza en detalle:
Facilidad para trabajar con código
AWS Lambda le brinda la infraestructura para cargar su código. Se encarga de mantener el código y lo activa cada vez que ocurre el evento requerido. Le permite elegir la memoria y el tiempo de espera requerido para el código.
AWS Lambda también puede ejecutar solicitudes en paralelo según los desencadenantes de eventos.
Provisión de registro
AWS Lambda proporciona los detalles de la cantidad de veces que se ejecutó un código y el tiempo de ejecución, la memoria consumida, etc. AWS CloudWatch recopila todos los registros, lo que ayuda a comprender el flujo de ejecución y depurar el código.
Facturación basada en el uso
La facturación de AWS Lambda se realiza en función del uso de la memoria, la solicitud realizada y la ejecución, que se factura en incrementos de un mínimo de 100 ms. Entonces, para una ejecución de 500 ms, la facturación será cada 100 ms. Si especifica que su código lambda de AWS se ejecute en 500 ms y el tiempo necesario para ejecutarlo es de solo 200 ms, AWS le facturará solo por el tiempo necesario, es decir, 200 ms de ejecución en lugar de 500 ms. AWS siempre cobra por el tiempo de ejecución utilizado. No es necesario pagar si la función no se ejecuta.
Soporte multilingüe
AWS Lambda admite lenguajes populares como Node. js, Python, Java, C # y Go. Estos son lenguajes muy utilizados y cualquier desarrollador encontrará fácil escribir código para AWS Lambda.
Facilidad de creación e implementación de código
Existen muchas opciones disponibles para Lambda para la creación e implementación de código. Para escribir su código, puede utilizar el editor en línea de AWS, Visual Studio IDE o Eclipse IDE. También es compatible con el marco sin servidor que facilita la escritura y la implementación del código AWS Lambda. Además de la consola de AWS, tenemos AWS-cli para crear e implementar código.
Otras características
Puede utilizar AWS Lambda de forma gratuita si obtiene un inicio de sesión en la capa gratuita de AWS. Te da servicio gratis por 1 año. Eche un vistazo a los servicios gratuitos que ofrece la capa gratuita de AWS.
Desventajas de usar AWS Lambda
A pesar de sus muchas ventajas, AWS Lambda posee las siguientes desventajas:
No es adecuado para proyectos pequeños.
Necesita analizar cuidadosamente su código y decidir la memoria y el tiempo de espera. En caso de que su función necesite más tiempo del asignado, se terminará según el tiempo de espera especificado en ella y el código no se ejecutará por completo.
Dado que AWS Lambda depende completamente de AWS para la infraestructura, no puede instalar ningún software adicional si su código lo exige.
Eventos que activan AWS Lambda
Los eventos que pueden activar AWS Lambda son los siguientes:
- Entrada en un objeto S3
- Inserción, actualización y eliminación de datos en la tabla Dynamo DB
- Notificaciones push de SNS
- Llamadas GET / POST a API Gateway
- Modificación de encabezados en el visor o solicitud / respuesta de origen en CloudFront
- Entradas de registro en el flujo de datos de AWS Kinesis
- Historial de registros en CloudTrail
Casos de uso de AWS Lambda
AWS Lambda es un servicio informático que se utiliza principalmente para ejecutar procesos en segundo plano. Puede activarse cuando se utiliza con otros servicios de AWS. La lista de servicios de AWS donde podemos utilizar AWS Lambda se proporciona a continuación:
Objeto S3 y AWS Lambda
Amazon S3 pasa los detalles del evento a AWS Lambda cuando se carga algún archivo en S3. Los detalles de la carga o eliminación de archivos o el movimiento de archivos se pasan a AWS Lambda. El código en AWS Lambda puede dar el paso necesario para cuando reciba los detalles del evento. Por ejemplo, creando una miniatura de la imagen insertada en S3.
DynamoDB y AWS Lambda
DynamoDB puede activar AWS Lambda cuando se agregan, actualizan y eliminan datos en la tabla. El evento AWS Lambda tiene todos los detalles de la tabla AWS DynamoDB sobre la inserción, actualización o eliminación.
API Gateway y AWS Lambda
API Gateway puede activar AWS Lambda en métodos GET / POST. Podemos crear un formulario y compartir detalles con el punto final de API Gateway y usarlo con AWS Lambda para su procesamiento posterior, por ejemplo, haciendo una entrada de los datos en la tabla de DynamoDB.
SNS y AWS Lambda
SNS se utiliza para notificaciones push, envío de SMS, etc. Podemos activar AWS lambda cuando hay alguna notificación push en SNS. También podemos enviar SMS al número de teléfono de AWS Lambda cuando recibe el disparador.
Eventos programados y AWS Lambda
Los eventos programados se pueden utilizar para trabajos cron. Puede activar AWS Lambda para que lleve a cabo la tarea en un patrón de tiempo regular.
CloudTrail y AWS Lambda
CloudTrail puede ser útil para monitorear los registros de la cuenta. Podemos utilizar AWS Lambda para seguir procesando los registros de CloudTrail.
Kinesis y AWS Lambda
Kinesis se utiliza para capturar / almacenar datos de seguimiento en tiempo real provenientes de clics en sitios web, registros, feeds de redes sociales y un disparador para que AWS Lambda pueda realizar un procesamiento adicional en estos registros.
CloudFront y Lambda @ Edge
CloudFront es una red de entrega de contenido donde puede alojar su sitio web y Lambda @ Edge se puede utilizar para procesar los encabezados provenientes de la solicitud del espectador, la solicitud de origen, la respuesta de origen y la respuesta del espectador. La modificación de los encabezados incluye tareas como la modificación de los datos de las cookies, la reescritura de URL, que se utilizan para las pruebas AB para cambiar la respuesta enviada al usuario, agregar información adicional de los encabezados por motivos de seguridad, etc.