|Initial release||November 13, 2014|
AWS Lambda is an event-driven, serverless computing platform provided by Amazon as a part of Amazon Web Services. It is a computing service that runs code in response to events and automatically manages the computing resources required by that code. It was introduced on November 13, 2014.
Node.js, Python, Java, Go, Ruby, and C# (through .NET) are all officially supported as of 2018[update]. In late 2018, custom runtime support was added to AWS Lambda.
AWS Lambda supports running native Linux executables by calling them from a supported runtime, such as Node.js. For example, Haskell code can be run on Lambda.
AWS Lambda was primarily designed for image or object uploads to Amazon S3, updates to DynamoDB tables, responding to website clicks, or reacting to sensor readings from an IoT connected device. AWS Lambda can also be used to automatically provision back-end services triggered by custom HTTP requests, and "spin down" such services when not in use to save resources. These custom HTTP requests are configured in AWS API Gateway, which can also handle authentication and authorization in conjunction with AWS Cognito.
Unlike Amazon EC2, which is priced by the hour but metered by the second, AWS Lambda is metered by rounding up to the nearest millisecond with no minimum execution time.
AWS Lambda functions are often used in association with AWS SQS queues to process asynchronous tasks in distributed architectures.
In 2019, at the AWS annual cloud computing conference (AWS re:Invent), the AWS Lambda team announced "Provisioned Concurrency", a feature that "keeps functions initialized and hyper-ready to respond in double-digit milliseconds." The Lambda team described Provisioned Concurrency as "ideal for implementing interactive services, such as web and mobile backends, latency-sensitive microservices, or synchronous APIs."
Each AWS Lambda instance is a container created from Amazon Linux AMIs (a Linux distribution related to RHEL) with 128–10240 MB of RAM (in 1 MB increments), 512 MB to 10 GB of ephemeral storage in /tmp folder, and a configurable execution time from 1 to 900 seconds. Ephemeral storage remains locally available only for the duration of the instance and is discarded after all tasks running on the instance are complete.
Since December 2020, Lambda has been capable of supporting Docker containers through ECR up to 10 GB in size.