AWS Lambda es una función como servicio (FaaS) sin servidor y basada en eventos que ofrece Amazon como parte de Amazon Web Services . Está diseñada para permitir que los desarrolladores ejecuten código sin aprovisionar ni administrar servidores. Ejecuta código en respuesta a eventos y administra automáticamente los recursos informáticos que requiere ese código. Se presentó el 13 de noviembre de 2014. [1]
Cada instancia de AWS Lambda es un contenedor creado a partir de las AMI de Amazon Linux (una distribución de Linux relacionada con RHEL ) y un tiempo de ejecución configurable. Node.js , Python , Java , Go , [2] Ruby , [3] y C# (a través de .NET ) son oficialmente compatibles a partir de 2018. [update]A fines de 2018, se agregó compatibilidad con tiempos de ejecución personalizados [4] a AWS Lambda.
En 2019, en la conferencia anual de computación en la nube de AWS (AWS re:Invent), el equipo de AWS Lambda anunció "Concurrencia aprovisionada", una característica que "mantiene las funciones inicializadas e hiperlistas para responder en milisegundos de dos dígitos". [5] El equipo de Lambda describió la Concurrencia aprovisionada como "ideal para implementar servicios interactivos, como backends web y móviles, microservicios sensibles a la latencia o API sincrónicas". [6]
La URL de la función Lambda le proporciona a Lambda una URL única y permanente a la que pueden acceder tanto usuarios autenticados como no autenticados. [7]
AWS Lambda Layers permite a los desarrolladores administrar y compartir fácilmente componentes comunes entre múltiples funciones Lambda. Está diseñado para promover la reutilización del código y simplificar la implementación de bibliotecas, tiempos de ejecución personalizados y otras dependencias que las funciones Lambda podrían necesitar. Lambda Layers puede ser particularmente útil en arquitecturas de microservicios, donde múltiples funciones podrían compartir las mismas dependencias. [8] Al usar capas, uno puede garantizar que todas las funciones usen la misma versión de una biblioteca, lo que hace que la aplicación sea más consistente y más fácil de administrar.
Seguir las prácticas de DevSecOps puede ayudar a los usuarios finales a utilizar y proteger las aplicaciones basadas en Lambda de forma más eficaz. [9] En las aplicaciones basadas en Lambda, la línea entre la infraestructura y la lógica empresarial es borrosa y las aplicaciones suelen estar repartidas entre varios servicios. Según Yan Cui, para obtener el máximo valor de los esfuerzos de prueba, las aplicaciones basadas en Lambda deben probarse principalmente para sus integraciones, y las pruebas unitarias deben utilizarse solo si existe una lógica empresarial compleja. Además, para facilitar la depuración y la implementación de las aplicaciones basadas en Lambda, los desarrolladores deben utilizar la orquestación dentro del contexto delimitado de un microservicio y deben utilizar la coreografía entre los contextos delimitados. [10]
Lambda Live Debugger es una herramienta de código abierto que le ayuda a depurar las funciones de AWS Lambda desde su computadora mientras se implementan en la nube. Es compatible con AWS CDK v2, Serverless Framework v3, AWS Serverless Application Model (SAM) y Terraform . [11]
En abril de 2022, los investigadores encontraron un malware de criptominería dirigido a AWS Lambda llamado "Denonia". [12] [13] [14]