How to Set JVM Arguments (VM Options) in AWS Lambda

You can easily set JVM arguments (e.g. system properties) in our AWS Lambda function through a single environment variable.

Let’s say we have a JAR file that we want to run within an AWS Lambda function.

Example: IntelliJ’s VM Options

In IntelliJ, we might use VM Options to specify JVM attributes such as stack/heap memory allocation, system properties, GC flags, etc.

Suppose our project specifies two system properties in VM Options:

-Denv=production -Dport=8080

These may be properties accessed through System.getProperty("env") or System.getProperty("port").

Set properties using JAVA_TOOL_OPTIONS

You can use the JAVA_TOOL_OPTIONS environment variable to specify properties we would normally specify in the command line, or in IntelliJ’s VM Options.

The JAVA_TOOL_OPTIONS environment variable augments the command line particularly for environments in which a command line is not accessible (like AWS Lambdas). JAVA_TOOL_OPTIONS makes it possible to add these properties independent of the way the JVM is started.

In AWS Lambda Configuration tab, you can modify Environment variables.

For the key, we can use JAVA_TOOL_OPTIONS.

For the value, we can use -Denv=production -Dport=8080.


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *