In the last few years a lot has changed with AWS Lambda supported languages and runtimes. With all of these changes there are some older runtimes reaching the end of their supported life and several new runtimes and new features to think about taking advantage of.
Real quickly, let’s make sure we’re all on the same page with our terminology. By a
supported language I’m talking about something like Node.js, Python, or Java. By a
runtime I mean a specific version of that language like Python 3.7 or Java 11. Now let’s take a look at some of the upcoming changes and what they mean for you.
When AWS Lambda was launched you could only pick from a small set of AWS Lambda runtimes for your functions. While you could try and hack the underlying container somewhat to support additional runtimes, you ended up doing that at your own peril. Because of the popularity and demand for AWS Lambda, support for additional languages, and newer languages versions quickly followed.
As of right now, there are several runtime versions of Node.js, Python, and Java. You can also use the Ruby, Go, and .NET Core runtimes. All of these runtimes don’t require you to do anything other than specify what runtime you’re looking for and you’re good to continue writing your code, configuring your events, and pressing onwards.
In the last week or so, AWS also launched three new supported runtime versions for AWS Lambda: Node.js 12, Python 3.8 and Java 11. This means that you can take advantage of new language features and performance improvements in these runtimes just by reviewing the compatibility of these new versions and migrating your function code over.
And of course, the Serverless Framework already has support for these runtimes! Just set your
java11 and you’ll be good to go! For more information on these supported runtimes and AWS Lambda you can check out our Ultimate Guide to Lambda.
A look at the past, present, and future of AWS Lambda runtimes. In the last few years a lot has changed with AWS Lambda supported languages and runtimes.