Qué es una función Lambda en AWS

By: Freddy Manuel Sabogal

Tecnología


blog/ Qué es una función Lambda en AWS
01 junio 2023


¿Qué es una función Lambda en AWS?


En el mundo del desarrollo en la nube, AWS Lambda se ha convertido en una
herramienta clave para construir aplicaciones modernas, escalables y sin servidores. Pero
¿qué es exactamente una función Lambda y por qué está revolucionando la forma en que
desarrollamos software?



Introducción a AWS Lambda


AWS Lambda es un servicio informático proporcionado por Amazon Web Services (AWS)
que permite ejecutar código sin tener que aprovisionar ni administrar servidores. Este
modelo se conoce como “computación sin servidor o serverless”.

En lugar de mantener un servidor funcionando las 24 horas, con Lambda simplemente
subes tu código, defines los eventos que lo activan, y AWS se encarga del resto: desde la
ejecución hasta la escalabilidad y el mantenimiento de la infraestructura.



¿Qué es una función Lambda?


Una función Lambda es una pieza de código que tú escribes y cargas a AWS Lambda.
Esta función se ejecuta en respuesta a un evento determinado, como una solicitud HTTP,
un archivo subido a Amazon S3, una actualización en una base de datos, o incluso un
CRON Job definido con Amazon EventBridge.

Características principales:

  • Eventos como disparadores: Lambda se activa por eventos de otros servicios de AWS (S3, DynamoDB, API Gateway, entre otros).
  • Ejecuta bajo demanda: Solo se ejecuta cuando ocurre un evento, lo cual permite reducir costos.
  • Escalado automático: AWS escala automáticamente la función para manejar múltiples ejecuciones simultáneas.
  • Cobro por uso: Solo pagas por el tiempo de ejecución y la cantidad de invocaciones.


¿Cómo funciona?


  1. Escribes tu función: Puede ser en lenguajes como Python, Node.js, Java, entre otros.
  2. La subes a AWS Lambda: Directamente desde la consola, CLI o como parte de una aplicación con infraestructura como código.
  3. Defines un evento disparador: Como por ejemplo una petición a través de Amazon API Gateway.
  4. Lambda ejecuta tu código: AWS gestiona automáticamente los recursos para ejecutar tu código cada vez que se dispare el evento.

En el siguiente diagrama se evidencia un ejemplo básico de funcionamiento:

ejemplo basico


Se observa que uno o múltiples eventos pueden invocar una función Lambda para un propósito en común o varios destinos.


Lenguajes que soporta


A continuación, se enmarcan los lenguajes que soportan las funciones AWS Lambda, así
como sus respectivas versiones:

Lenguaje Versión Sistema operativo
NodeJS 20, 22 Amazon Linux 2023
NodeJS 18 Amazon Linux 2
Python 3.12 Amazon Linux 2023
Python 3.11, 3.19, 3.9 Amazon Linux 2
Java 21 Amazon Linux 2023
Java 17, 11, 8 Amazon Linux 2
.NET 9, 8 Amazon Linux 2023
Ruby 3.4, 3.3 Amazon Linux 2023
Ruby 3.2 Amazon Linux 2
OS-only Amazon Linux 2 / 2023


Casos de uso comunes


  • Procesamiento de imágenes o archivos: Cuando un archivo se sube a S3.
  • APIs sin servidor: Combinando Lambda con API Gateway.
  • Automatización de tareas: Como el envío de notificaciones, backups o limpieza de datos.
  • Procesamiento en tiempo real: Como flujos de datos con Kinesis o DynamoDB Streams.


Ventajas


  • No necesitas administrar servidores.
  • Escalabilidad automática.
  • Alta disponibilidad.
  • Reducción de costos.
  • Fácil integración con otros servicios de AWS.


Datos adicionales


  • Duración máxima: 15 minutos por ejecución.
  • Asignación de memoria: Entre 128 MB a 10.240 MB.
  • Escalabilidad: La CPU y red se escalan proporcionalmente con la memoria asignada.
  • Modelo de costos: Solo se paga por tiempo real de ejecución y cantidad de invocaciones.
    Adicionalmente, AWS brinda una capa gratuita mensual, la cual consta de:

    • 1 millón de invocaciones
    • 400.000 GB-segundos de tiempo de cómputo
  • Tamaño de paquete:

    • ZIP: hasta 50 MB
    • Docker: hasta 10 GB
  • Seguridad y roles: Cada función Lambda utiliza un rol IAM. Es fundamental configurar solo los permisos mínimos necesarios.
  • Monitoreo y depuración:

    • Amazon Cloudwatch Logs: Registrar eventos y errores.
    • X-Ray: Trazabilidad y análisis de rendimiento.
    • AWS CloudTrail: Auditoría de actividad.
  • Versionamiento: Es posible versionar las funciones, facilitando despliegues controlados y separación de ambientes de desarrollo, test y producción.


Conclusión


AWS Lambda representa un cambio de paradigma en cómo pensamos y desarrollamos
nuestras aplicaciones. Al enfocarse únicamente en el código y no en la infraestructura, los
equipos pueden moverse más rápido, pagar menos y construir soluciones más resilientes
y escalables. Lambda puede ser un excelente primer paso en el mundo de la computación
sin servidor.


¿ Quieres conocer más ?
¡ Agenda una llamada !

¡ Contáctanos en WhatsApp