我有一个AWS Lambda函数,它应该由来自Simple Queue Service SQS的消息触发。当新的json文件写入我的s3存储桶时,或者当s3存储桶中的现有json文件被覆盖时,该SQS应该会收到通知。两种情况的事件类型都是s3:ObjectCreated,我看到这两种情况的通知都是我的SQS。现在,问题是s3中有一个新文件(或s3中更新的现有文件),但sqs中没有相应的消息!如此多的文件丢失,Lambda不知道应该处理这些文件。在Lambda中,我将收到的SQS有效负载的全部内容打印到日志文件中,然后尝试使用类似aws --profile aaa logs filter-log-events --log-group-name /aws/lambda/name --start-time 1554357600000 --end-time 1554396561982 --filter-pattern "missing_file_name_pattern"
的内容找到那些丢失的文件,但找不到任何内容,这意味着没有为此丢失的文件生成s3:objectCreated事件。是否有一些条件阻止新的/更新的s3文件的s3:objectCreated事件?有办法解决吗?或某种解决方法,可能是?
两种可能性:
您还应该在SQS上确保所有记录都已被摄取并成功处理。