我在創建不超過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