AWS Lambda
Developer Guide

The AWS Documentation website is getting a new look!
Try it now and let us know what you think. Switch to the new look >>

You can return to the original look by selecting English in the language selector above.

AWS Lambda Runtimes

AWS Lambda supports multiple languages through the use of runtimes. You choose a runtime when you create a function, and you can change runtimes by updating your function's configuration. The underlying execution environment provides additional libraries and environment variables that you can access from your function code.

Amazon Linux

Amazon Linux 2

When your function is invoked, Lambda attempts to re-use the execution environment from a previous invocation if one is available. This saves time preparing the execution environment, and allows you to save resources like database connections and temporary files in the execution context to avoid creating them every time your function runs.

A runtime can support a single version of a language, multiple versions of a language, or multiple languages. Runtimes specific to a language or framework version are deprecated when the version reaches end of life.

Node.js Runtimes

Name Identifier Node.js Version AWS SDK for JavaScript Operating System

Node.js 10




Amazon Linux 2

Node.js 8.10




Amazon Linux

Python Runtimes

Name Identifier AWS SDK for Python Operating System

Python 3.7


boto3-1.9.221 botocore-1.12.221

Amazon Linux

Python 3.6


boto3-1.9.221 botocore-1.12.221

Amazon Linux

Python 2.7


boto3-1.9.221 botocore-1.12.221

Amazon Linux

Ruby Runtimes

Name Identifier AWS SDK for Ruby Operating System

Ruby 2.5



Amazon Linux

Java Runtimes

Name Identifier JDK Operating System

Java 8



Amazon Linux

Go Runtimes

Name Identifier Operating System

Go 1.x


Amazon Linux

.NET Runtimes

Name Identifier Languages Operating System

.NET Core 2.1



PowerShell Core 6.0

Amazon Linux

To use other languages in Lambda, you can implement a custom runtime. The Lambda execution environment provides a runtime interface for getting invocation events and sending responses. You can deploy a custom runtime alongside your function code, or in a layer.