我在创建不超过50MB大小限制的简单Java AWS Lambda时遇到了问题,并且我不确定我要出错的地方...简单的AWS Lambda Maven项目超出了最大大小限制?
我的实际Java代码只有100行左右。我正在使用Maven来拉我的依赖,其中大部分是AWS的依赖本身...
我做了一个mvn包或mvn干净安装后,生成的jar大约64MB!
我在做什么错在这里?如果我不添加AWS依赖关系,那么我无法使用maven构建,但如果我这样做,那么生成的jar文件是巨大的,并且由于大小限制,我无法将其上传到AWS lambda ...
我的pom文件低于:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>lambda-handler</groupId>
<artifactId>lambda-handler</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-core</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-events</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.166</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.11.166</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.3</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.3</version>
</dependency>
</dependencies>
</project>
请勿吸入整个AWS开发工具包 - 您的数量超过您需要的数量。首先简单介绍一下你正在使用的服务 - 在你的例子中,你拉动了整个SDK **和** S3。我假设你只是想在这种情况下的S3。请注意,Lambda事件也拉大量 - 你真的需要吗?我回答了一个类似的问题[这里](https://stackoverflow.com/questions/42458440/use-proguard-for-scala-aws-lambda),并且能够大大减少部署的大小。 – stdunbar
谢谢!这实际上解决了我的问题,并大大减少了我的jar文件的大小!非常感谢! ;) – MikeAnthony