[英]AWS S3 bucket notification lambda throws exception (Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey)
我们有一个 AWS Glue DataBrew 作业,它将输出放入某个 S3 存储桶文件夹。 然后 java lambda 会收到此 Put 通知的通知。 但是下面的示例代码抛出异常:
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_files/processed_file_22Dec2022_1671678897600/fdg629ae-4f91-4869-891c-79200772fb92/databrew-test-put-object.temp
那么,lambda 是否获取了仍在复制到 S3 文件夹中的文件? 当我们使用控制台手动上传文件时,它工作正常。 但是当 databrew 作业上传它时,我们看到了问题。
我希望 lambda 函数使用正确的密钥读取该文件。
谢谢
您的触发事件类型是什么?
那么,lambda 是否获取了仍在复制到 S3 文件夹中的文件?
如果您有 Put 触发器,Lambda 将在对象上传完成时被触发。 S3 不会创建临时对象然后将其删除。
我之前没有使用过 AWS Glue DataBrew,但也许这是在创建临时对象? 如果是这种情况,您需要在代码中处理它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.