Aws Lambda

Serverless event-driven computing.

AWS Lambda es un servicio de cómputo sin servidor y basado en eventos proporcionado por Amazon Web Services (AWS). Permite a los desarrolladores ejecutar código sin necesidad de aprovisionar o administrar servidores. Los desarrolladores suben su código como funciones Lambda, y AWS maneja automáticamente la infraestructura requerida para ejecutar y escalar ese código con alta disponibilidad. Las funciones son activadas por varios eventos, como cambios en datos en un bucket de Amazon S3, actualizaciones en una tabla de Amazon DynamoDB, o solicitudes de [API Gateway](/es/terms/api-gateway). Cuando ocurre un disparador, Lambda ejecuta la función, asignando los recursos de cómputo necesarios. La facturación se basa en el número de solicitudes y la duración/memoria consumida durante la ejecución, con un generoso nivel gratuito. Las características clave incluyen escalado automático, entornos de ejecución sin estado (aunque el estado puede ser administrado externamente), soporte para múltiples lenguajes de programación (Node.js, Python, Java, C#, Go, Ruby, PowerShell y runtimes personalizados), e integración con una amplia gama de servicios AWS. Las funciones Lambda son típicamente de corta duración, diseñadas para tareas específicas en lugar de aplicaciones de larga ejecución. Las contrapartidas incluyen posibles arranques en frío (latencia cuando una función no ha sido invocada recientemente), límites de tiempo de ejecución, limitaciones de memoria y almacenamiento temporal, y dependencia del proveedor del ecosistema AWS. Es ideal para procesamiento de eventos, microservicios, transformación de datos y APIs de backend.

        graph LR
  Center["Aws Lambda"]:::main
  Rel_api_gateway["api-gateway"]:::related -.-> Center
  click Rel_api_gateway "/terms/api-gateway"
  Rel_microservices["microservices"]:::related -.-> Center
  click Rel_microservices "/terms/microservices"
  Rel_serverless["serverless"]:::related -.-> Center
  click Rel_serverless "/terms/serverless"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 Prueba de conocimiento

1 / 4

🧒 Explícalo como si tuviera 5 años

Piensa en AWS Lambda como un chef mágico que solo cocina cuando pides un plato específico (ocurre un evento). Le das al chef la receta (tu código), y él la cocina instantáneamente usando las herramientas adecuadas, cobrándote solo por el tiempo que pasa cocinando.

🤓 Expert Deep Dive

AWS Lambda opera sobre un modelo de ejecución basado en contenedores. Cuando se invoca una función, Lambda aprovisiona un micro-contenedor, carga el código de la función y lo ejecuta. Para funciones invocadas con poca frecuencia, este paso de aprovisionamiento introduce latencia de 'arranque en frío'. Las invocaciones subsiguientes dentro de un corto período de tiempo reutilizan el contenedor existente ('arranque en caliente'), reduciendo significativamente la latencia. Las funciones Lambda son inherentemente sin estado; cualquier estado requerido debe persistir externamente (por ejemplo, en DynamoDB, S3, RDS). El modelo de concurrencia permite que múltiples instancias de una función se ejecuten en paralelo, gestionadas por AWS para satisfacer la demanda hasta los límites de concurrencia a nivel de cuenta. La Concurrencia Aprovisionada se puede usar para mitigar los arranques en frío para aplicaciones sensibles a la latencia manteniendo un número especificado de entornos de ejecución activos. La seguridad se gestiona a través de roles IAM, otorgando a las funciones permisos granulares para acceder a otros recursos de AWS. El mecanismo de mapeo de fuentes de eventos permite a Lambda consultar fuentes de eventos (como flujos Kinesis) e invocar funciones con lotes de registros. Las consideraciones arquitectónicas incluyen optimizar la asignación de memoria de la función (que también afecta la asignación de CPU), gestionar dependencias y diseñar para la idempotencia debido a posibles reintentos.

📚 Fuentes