[英]AWS Lambda Java, S3 config
我正在尝试遵循AWS Lambda Java示例: http : //docs.aws.amazon.com/lambda/latest/dg/with-s3-example-deployment-pkg.html#with-s3-example-deployment-pkg -java
创建了新的LambdaFunctionHandler
类,以粘贴在修改Lambda代码的S3图像中。 向maven依赖项添加了aws-lambda-java-core
1.0.0, aws-lambda-java-events
1.0.0, maven-shade-plugin
2.4.3和aws-java-sdk-core
1.11.0。 创建了jar,上传并测试了lambda后出现错误。
出现以下错误:
START RequestId: 9b800497-52c2-11e6-a2c2-416f188f3ed0 Version: $LATEST
Error loading class LambdaFunctionHandler: com/amazonaws/services/s3/AmazonS3: class java.lang.NoClassDefFoundError
java.lang.NoClassDefFoundError: com/amazonaws/services/s3/AmazonS3
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
Caused by: java.lang.ClassNotFoundException: com.amazonaws.services.s3.AmazonS3
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 2 more
我使用这些版本号,因为其他答案似乎引用了这些特定版本。
为了确保不只是错误地使用了maven,我使用了适用于Eclipse的AWS插件创建了一个AWS Lambda项目,但仍然导致了相同的错误。
您需要添加de S3依赖项
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.11.0</version>
</dependency>
或者你可以放
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.11.0</version>
</dependency>
该库具有所有服务的库。
确保您在POM中拥有所有依赖项,并且,对于AWS Lambda,您需要一个包含这些依赖项的胖子。 如果您认为自己的类路径中具有所有依赖项,请查看包含以下阴影插件是否对您有所帮助(使用由maven-shade-plugin创建的胖罐):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<finalName>${project.artifactId}</finalName>
</configuration>
</execution>
</executions>
</plugin>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.