AWS Lambda
Developer Guide

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, which is shared by all runtimes, provides additional libraries and environment variables that you can access from your function code.

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.

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.

Node.js Runtimes

Name Identifier

Node.js 8.10

nodejs8.10

Node.js 6.10

nodejs6.10

Python Runtimes

Name Identifier

Python 3.6

python3.6

Python 3.7

python3.7

Python 2.7

python2.7

Ruby Runtimes

Name Identifier

Ruby 2.5

ruby2.5

Java Runtimes

Name Identifier JDK

Java 8

java8

java-1.8.0-openjdk

Go Runtimes

Name Identifier

Go 1.x

go1.x

.NET Runtimes

Name Identifier Languages

.NET Core 2.1

dotnetcore2.1

C#

PowerShell Core 6.0

.NET Core 2.0

dotnetcore2.0

C#

.NET Core 1.0

dotnetcore1.0

C#