I\'m trying to use Java with AWS Lambda. I created a jar file with all dependencies (using maven-assembly-plugin). Upon uploading, I cannot call the lambda. I receive the error
maven-assemply-plugin
needs to be told to output a zip
, not a jar
. (I didn't even know there was a difference!)
Add this to its configuration:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
...
<configuration>
...
<formats>
<format>zip</format>
</formats>
</configuration>
</plugin>
I ran into this because a JAR packed with the Shade plugin generated both the file and directory META-INF\version\9
.
By excluding these files the JAR could be run again. The following is the configuration section for the maven-shade-plugin.
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
<exclude>META-INF/versions/9</exclude>
<exclude>META-INF/versions/9/*</exclude>
</excludes>
</filter>
</filters>
</configuration>
The suffered from the same issue.
Generally, This error occurred if .zip or .jar file size of a lambda function is more than 50MB after unzipping it
Make the sure that size of a lambda function code is less than 50MB