gpt4 book ai didi

java - AWS Lambda S3Event 反序列化

转载 作者:搜寻专家 更新时间:2023-11-01 01:25:18 26 4
gpt4 key购买 nike

有人成功地为 S3 事件实现了基于 Java 的请求处理程序吗?

我的类(class):

package example;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.s3.model.S3Event;

public class Hello implements RequestHandler<S3Event, String> {
public String handleRequest(S3Event event, Context context) {
return "Success";
}
}

错误信息:

JSON 解析期间发生错误:java.lang.RuntimeException java.lang.RuntimeException:JSON 解析期间发生错误 Caused by:java.io.UncheckedIOException:com.fasterxml.jackson.databind.JsonMappingException:Can不从 START_OBJECT token 反序列化 com.amazonaws.services.s3.model.S3Event 的实例 [来源:lambdainternal.util.NativeMemoryAsInputStream@6108b2d7;行:1,列:1] 原因:com.fasterxml.jackson.databind.JsonMappingException:无法从 START_OBJECT token 反序列化 com.amazonaws.services.s3.model.S3Event 的实例 [来源:lambdainternal.util.NativeMemoryAsInputStream @6108b2d7;行:1,列:1] 在 com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148) 在 com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:835) 在 com.fasterxml .jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:831)在 com.fasterxml.jackson.databind.deser.std.EnumDeserializer._deserializeOther(EnumDeserializer.java:137)在 com.fasterxml.jackson.databind.deser.std .EnumDeserializer.deserialize(EnumDeserializer.java:89) 在 com.fasterxml.jackson.databind.deser.std.EnumDeserializer.deserialize(EnumDeserializer.java:18) 在 com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java :1441) 在 com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1047)

最佳答案

解决方案是采用 S3EventNotification。希望 AWS 文档中涵盖了这一点。我喜欢 Lambda 概念,但那里没有太多文档或示例。

public void mergeGLAU(S3EventNotification notification, Context context) {
try {
for (S3EventNotificationRecord record : notification.getRecords()) {
System.out.println(record.getEventSource());
System.out.println(record.getEventName());
System.out.println(record.getS3().getBucket().getName());
System.out.println(record.getS3().getObject().getKey());
}
}
catch (Exception e) {
e.printStackTrace();
}
}

关于java - AWS Lambda S3Event 反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36730266/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com