AWS S3 bucket notification lambda抛出异常(Service: Amazon S3;状态码



我们有一个AWS Glue DataBrew作业,它将输出放到某个S3桶文件夹中。然后将此Put通知通知给java lambda。但是下面的示例代码会抛出异常:

S3EventNotification.S3EventNotificationRecord record = event.getRecords().get(0);
String s3Bucket = record.getS3().getBucket().getName();
String s3Key= record.getS3().getObject().getUrlDecodedKey();

//下面抛出异常——404 NoSuchKey

S3Object s3object = s3Client.getObject(s3Bucket , s3Key);

在日志中,我们看到键是这样的:

* * input_file/processed_file_22Dec2022_1671678897600 fdg629ae - 4 f91 - 4869 - 891 - c - 79200772 fb92/databrew-test-put-object.temp

那么,lambda是否获得了仍被复制到S3文件夹中的文件?当我们使用控制台手动上传文件时,它工作得很好。但是当databrew job上传它时,我们看到了问题。

我希望lambda函数用正确的键读取文件。

感谢

你的触发事件类型是什么?

所以它是,lambda得到的文件仍被复制到S3文件夹?

如果您有一个Put触发器,Lambda将在对象上传完成时被触发。S3不会先创建一个临时对象,然后再删除它。

我以前没有使用过AWS Glue DataBrew,但也许这是创建临时对象?如果是这种情况,您需要在代码中处理它。

相关内容

  • 没有找到相关文章

最新更新