Posted On: Apr 27, 2023

AWS Lambda now supports Java 17 as both a managed runtime and a container base image. Developers creating serverless applications in Lambda with Java 17 can take advantage of new language features including Java records, sealed classes and multi-line strings. The Lambda Java 17 runtime also has numerous performance improvements, including optimizations when running Lambda functions on Graviton 2 processors. It supports AWS Lambda Snap Start (in supported Regions) for fast cold starts, and the latest versions of the popular Spring Boot 3 and Micronaut 4 application frameworks. For more information on Lambda’s support for Java 17, see our blog post at Java 17 runtime now available in AWS Lambda.

To deploy Lambda functions using Java 17, upload the code through the Lambda console and select the Java 17 runtime. You can also use the AWS CLI, AWS Serverless Application Model (AWS SAM) and AWS CloudFormation to deploy and manage serverless applications written in Java 17. Additionally, you can also use the AWS-provided Java 17 base image to build and deploy Java 17 functions using a container image. To migrate existing Lambda functions running earlier Java versions, review your code for compatibility with Java 17 and then update the function runtime to Java 17 when redeploying you function.

This runtime is based on the AWS Corretto distribution of OpenJDK. AWS will automatically apply updates to the Java 17 managed runtime and to the AWS-provided Java 17 base image, as they become available.

The Java 17 runtime is available in all Regions where Lambda is available, except for China and GovCloud Regions. Visit our product page for more information about AWS Lambda or sign in to the AWS Lambda console to get started.