当前位置: 首页 > 知识库问答 >
问题:

AWS Lambda Java,S3配置

储承
2023-03-14

我试图遵循AWS Lambda Java示例:http://docs.aws.amazon.com/lambda/latest/dg/with-s3-example-deployment-pkg.html#with-s3示例部署pkgJava

创建了新的类LambdaFunctionHandler以插入S3映像修改lambda代码。添加了aws-lambda-java-core1.0.0,aws-lambda-java-event1.0.0,maven-shave-plugin2.4.3和aws-java-sdk-core1.11.0到maven依赖项。创建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项目,但仍然导致了同样的错误。

共有2个答案

暨嘉
2023-03-14

确保POM中有所有依赖项,而且对于AWS lambda,您需要一个包含这些依赖项的胖罐子。如果您认为自己拥有类路径中的所有依赖项,那么请查看包含以下shade插件是否对您有所帮助(使用maven shade插件创建的胖jar):

<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>
淳于思淼
2023-03-14

您需要添加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>

这个有所有服务的库。

 类似资料:
  • 我正在使用Amazon提供的AWS Java SDK与S3服务进行交互。 默认情况下,SDK对存储桶使用虚拟主机样式(即存储桶由bucket-name.s3.amazonaws.com.示例: 但是,我需要在应用程序中使用路径样式,如下所示: 可以在Java SDK中使用路径样式吗?在积极的情况下,我该如何做?我已经看过ClientConfiguration和AmazonS3Client类,但我没

  • 我已经使用 kafka-connect s3 接收器连接器将一些来自主题(例如 )的 avro 消息上传到 Amazon s3 存储桶,例如 。接收器连接器的配置如下所示: 这按预期工作,所有消息都是相同的记录,具有相同的架构版本,我将5写入主题并在我的存储桶中看到一个带有路径的s3对象 现在我想将这些存储的消息放到另一个空主题上。我使用以下配置启动 s3 源连接器: 当我查看kafka-conn

  • 我有一个播放应用程序需要上传文件到S3。我们正在使用scala和Java AWS SDK进行开发。 我有麻烦尝试上传文件,我不断得到403签名DoesnotMatch当使用预签名的URL。url是通过以下代码使用AWS Java SDK生成的:

  • 我正在尝试使用npm s3模块(https://www.npmjs.org/package/s3)将映像上载到我的s3存储桶中 我得到了下面的日志,我不明白我做错了什么。你能帮帮我吗?多谢

  • 标题说明一切。这是我的代码; 我使用节点强大的文件。 成功上传后,url变量返回s3 url,类似以下内容; 下面是我的参数 我错过了什么?

  • Amazon S3 (简单存储服务)是一种可扩展,高速,低成本的基于Web的服务,专为在线备份和归档数据和应用程序而设计。 它允许上传,存储和下载任何类型的文件,最大为5 GB。 此服务允许订户访问Amazon用于运行其自己的网站的相同系统。 订户控制数据的可访问性,即私人/公共可访问。 如何配置S3? 以下是配置S3帐户的步骤。 Step 1 - 使用此链接打开Amazon S3控制台 - ht