AWS Lambda Documentation

AWS Lambda is a serverless compute service that lets you run code without provisioning or managing servers, creating workload-aware cluster scaling logic, maintaining event integrations, or managing runtimes. You can upload your code as a ZIP file or container image, and Lambda is designed to automatically and allocate compute execution power and run your code based on the incoming request or event. You can set up your code to trigger from over 200 AWS services and SaaS applications or call it directly from any web or mobile app. You can write Lambda functions in your favorite language (Node.js, Python, Go, Java, and more) and use both serverless and container tools, such as AWS SAM or Docker CLI, to build, test, and deploy your functions.

What is a Lambda function?

The code you run on AWS Lambda is called a “Lambda function.” After you create your Lambda function, it is ready to run as soon as it is triggered, similar to a formula in a spreadsheet. Each function includes your code as well as some associated configuration information, including the function name and resource requirements. Lambda functions are “stateless”, with no affinity to the underlying infrastructure, so that Lambda can launch as many copies of the function as needed to scale to the rate of incoming events.

Key product features

Extend other AWS services with custom logic
AWS Lambda allows you to add custom logic to AWS resources such as Amazon S3 buckets and Amazon DynamoDB tables, making it easier to apply compute to data as it enters or moves through the cloud.
Build custom backend services
You can use AWS Lambda to create new backend services for your applications that are triggered on-demand using the Lambda API or custom API endpoints built using Amazon API Gateway.
Bring your own code
With AWS Lambda, there are no new languages, tools, or frameworks to learn. You can use third-party libraries, even native ones. You can also package code (frameworks, SDKs, libraries, and more) as a Lambda Layer, and manage and share them across multiple functions. Lambda natively supports Java, Go, PowerShell, Node.js, C#, Python, and Ruby code, and provides a Runtime API which allows you to use additional programming languages to author your functions.
Completely automated administration
AWS Lambda manages the core infrastructure to run your code on highly available, fault-tolerant infrastructure, freeing you to focus on building differentiated backend services.
Built-in fault tolerance
AWS Lambda maintains compute capacity across multiple Availability Zones in each region to help you protect your code against individual machine or data center facility failures. Both AWS Lambda, and the functions running on the service, provide predictable and reliable operational performance. AWS Lambda is designed to provide high availability for both the service itself and the functions it operates.
Package and deploy functions as container images
AWS Lambda supports packaging and deploying functions as container images, making it easier for customers to build Lambda-based applications by using familiar container image tooling, workflows, and dependencies.
Automatic scaling
AWS Lambda invokes your code only when needed, and automatically scales to support the rate of incoming requests. AWS Lambda typically starts running your code within milliseconds of an event.
Connect to relational databases
Use Amazon RDS Proxy to take advantage of managed connection pools for relational databases. RDS Proxy efficiently manages thousands of concurrent database connections to relational databases, making it easier to build highly scalable, secure, Lambda-based serverless applications that need to interact with relational databases.
Fine-grained control over performance
When enabled, Provisioned Concurrency keeps functions initialized. Provisioned Concurrency is ideal for any application built using AWS Lambda that needs greater control over function start time. You can configure the appropriate amount of concurrency that your application needs. You can increase the level of concurrency during times of high demand and lower it, or turn it off completely, when demand decreases. Taking advantage of Provisioned Concurrency requires no changes to your code.
Connect to shared file systems
With Amazon Elastic File System for AWS Lambda, you can securely read, write, and persist large volumes of data at low latency, at scale. You don't need to write code to download data to temporary storage in order to process it. This saves time and simplifies the code, allowing you to focus on your business logic.
Run code in response to Amazon CloudFront requests
With Lambda@Edge, AWS Lambda can run your code across AWS locations globally in response to Amazon CloudFront events, such as content requests to or from origin servers and viewers.
Orchestrate multiple functions
You can coordinate multiple AWS Lambda functions for complex or long-running tasks by building workflows with AWS Step Functions. Step Functions lets you define workflows that trigger a collection of Lambda functions using sequential, parallel, branching, and error-handling steps. With Step Functions and Lambda, you can build stateful, long-running processes for applications and backends.
Integrated security model
AWS Lambda allows your code to securely access other AWS services through its built-in AWS SDK and integration with AWS Identity and Access Management (IAM). AWS Lambda runs your code within a VPC by default. You can optionally also configure AWS Lambda to access resources behind your own VPC, allowing you to leverage custom security groups and network access control lists to provide your Lambda functions access to your resources within a VPC.
Trust and integrity controls
Code Signing for AWS Lambda offers trust and integrity controls which allow you to verify that unaltered code published by approved developers is deployed in your Lambda functions. You can create digitally signed code artifacts and configure your Lambda functions to verify the signatures at deployment.
Flexible resource model
You choose the amount of memory you want to allocate to your functions, and AWS Lambda allocates proportional CPU power, network bandwidth, and disk I/O.
Integrate Lambda with your favorite operational tools
AWS Lambda extensions allow you to integrate Lambda with your favorite tools for monitoring, observability, security, and governance. Lambda extensions run within Lambda’s execution environment, which is where your function code is executed. With Lambda extensions, you can capture fine-grained diagnostic information and send function logs, metrics, and traces to a location of your choice. You can also integrate security agents within Lambda’s execution environment.

Additional Information

For additional information about service controls, security features and functionalities, including, as applicable, information about storing, retrieving, modifying, restricting, and deleting data, please see https://docs.aws.amazon.com/index.html. This additional information does not form part of the Documentation for purposes of the AWS Customer Agreement available at http://aws.amazon.com/agreement, or other agreement between you and AWS governing your use of AWS’s services.