AWS Lambda es un evento impulsado , sin servidor de computación plataforma proporcionada por Amazon como parte de Amazon Web Services . Es un servicio informático que ejecuta código en respuesta a eventos y administra automáticamente los recursos informáticos requeridos por ese código. Fue introducido en noviembre de 2014. [1]
Desarrollador (es) | Amazon.com |
---|---|
Versión inicial | Noviembre de 2014 |
Sistema operativo | Multiplataforma |
Disponible en | inglés |
Sitio web | aws |
Node.js , Python , Java , Go , [2] Ruby , [3] y C # (a través de .NET Core ) son oficialmente compatibles a partir de 2018 [actualizar]. A fines de 2018, se agregó soporte de tiempo de ejecución personalizado [4] a AWS Lambda.
AWS Lambda admite la ejecución de ejecutables nativos de Linux mediante llamadas desde un tiempo de ejecución compatible como Node.js. [5] Por ejemplo, el código Haskell se puede ejecutar en Lambda. [6]
AWS Lambda se diseñó para casos de uso como la carga de imágenes u objetos en Amazon S3, las actualizaciones de las tablas de DynamoDB , la respuesta a los clics en el sitio web o la reacción a las lecturas de los sensores de un dispositivo conectado a IoT . AWS Lambda también se puede utilizar para aprovisionar automáticamente servicios de back-end activados por solicitudes HTTP personalizadas y "desacelerar" dichos servicios cuando no estén en uso, para ahorrar recursos. Estas solicitudes HTTP personalizadas se configuran en AWS API Gateway, que también puede manejar la autenticación y la autorización junto con AWS Cognito .
A diferencia de Amazon EC2, que tiene un precio por hora pero se mide por segundo, AWS Lambda se mide redondeando al milisegundo más cercano sin tiempo de ejecución mínimo.
En 2019, en la conferencia anual de computación en la nube de AWS (AWS re: Invent), el equipo de AWS Lambda anunció la "Concurrencia aprovisionada", una característica que "mantiene las funciones inicializadas e hiper-listas para responder en milisegundos de dos dígitos". [7] El equipo de Lambda describió la simultaneidad aprovisionada como "ideal para implementar servicios interactivos, como backends web y móviles, microservicios sensibles a la latencia o API síncronas". [8]
Especificación
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 ) con 128-10240 MB de RAM (en incrementos de 1 MB), [9] hasta 512 MB de almacenamiento efímero en la carpeta / tmp y un tiempo de ejecución configurable de 1 a 900 segundos. El almacenamiento efímero permanece disponible localmente solo durante la duración de la instancia y se descarta una vez que se completan todas las tareas que se ejecutan en la instancia.
Las instancias no se inician ni se controlan directamente. En su lugar, se debe crear y cargar un paquete que contiene las tareas requeridas (generalmente) en un bucket de S3 , y se indica a AWS (a través de Amazon Kinesis, DynamoDB o SQS ) que lo ejecute cuando se desencadena un evento. Cada una de estas ejecuciones se ejecuta en un nuevo entorno, por lo que no es posible acceder al contexto de ejecución de las ejecuciones anteriores y posteriores. Básicamente, esto hace que las instancias no tengan estado, todos los datos entrantes y salientes deben almacenarse por medios externos (generalmente a través de S3 o DynamoDB, las conexiones entrantes a las instancias están deshabilitadas). El tamaño máximo comprimido de un paquete Lambda es de 50 MB y el tamaño máximo sin comprimir es de 250 MB.
Desde diciembre de 2020, Lambda admite contenedores Docker a través de ECR de hasta 10 GB de tamaño. [10]
Ver también
- Arquitectura impulsada por eventos
- Marco sin servidor
- Computación sin servidor
- Funcionar como un servicio
- Función Lambda , el concepto de función informática anónima, no vinculada a una identidad, que le da a Amazon Lambda su nombre.
- Plataforma en la nube de Oracle
- Funciones de Google Cloud
- Funciones de Azure
Referencias
- ^ Handy, Alex (14 de noviembre de 2014). "Amazon presenta Lambda, contenedores en AWS re: Invent" . Tiempos SD . Consultado el 10 de diciembre de 2019 .
- ^ Munns, Chris (15 de enero de 2018). "Anuncio de Go Support para AWS Lambda" . Servicios web de Amazon . Consultado el 10 de diciembre de 2019 .
- ^ Munns, Chris (29 de noviembre de 2018). "Anuncio del soporte de Ruby para AWS Lambda" . Servicios web de Amazon . Consultado el 10 de diciembre de 2019 .
- ^ "AWS Lambda ahora admite tiempos de ejecución personalizados y permite compartir código común entre funciones" . Servicios web de Amazon . 29 de noviembre de 2018 . Consultado el 10 de diciembre de 2019 .
- ^ Wagner, Tim (15 de abril de 2015). "Ejecución de ejecutables arbitrarios en AWS Lambda" . Blog de AWS Compute . Consultado el 10 de diciembre de 2019 .
- ^ Bailly, Arnaud. "abailly / aws-lambda-haskell: Ejecutando código Haskell en AWS Lambda" . GitHub . Consultado el 10 de diciembre de 2019 .
- ^ "Nuevo - Concurrencia aprovisionada para funciones Lambda" . aws.amazon.com . Consultado el 12 de octubre de 2020 .
- ^ "Nuevo - Concurrencia aprovisionada para funciones Lambda" . Servicios web de Amazon . 2019-12-03 . Consultado el 3 de febrero de 2020 .
- ^ "AWS Lambda ahora admite hasta 10 GB de memoria y 6 núcleos de vCPU para funciones Lambda" . Acerca de AWS . 1 de diciembre de 2021 . Consultado el 29 de enero de 2021 .
- ^ "Nuevo para AWS Lambda - Soporte de imagen de contenedor" . Servicios web de Amazon . 2020-12-01 . Consultado el 3 de junio de 2021 .
enlaces externos
- Página web oficial