简体   繁体   中英

AWS Lambda Java: Lambda was not able to unzip the file

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 Calling the Invoke API failed with message: Lambda was not able to unzip the file . The jar file is 11 MB. I can execute the jar with java -jar

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM