繁体   English   中英

AWS Lambda Java,S3配置

[英]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.

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