问题
I'm hooking up AWS S3 event notifications to an AWS Lambda processing pipeline.
I can't find documentation on S3 event notification guarantees. Can I be sure all S3 events will fire the lambda processes? Order does not concern me, just that my lambda eventually does get fired.
If no such guarantee exists, how to architect to deal with this?
回答1:
In principle yes. However, Lambda has a 99.9% SLA and S3 has a 99.9% uptime SLA as well. So in theory some events could be missed, but only when they have a service disruption. When the Lambda function fails, it automatically retries up to three times.
I use S3 as a 'queue' for Lambda and have never missed a message (out of millions and millions).
There's not much you can do to deal with this I think. Part of using 'serverless' infrastructure means that you also lose some control (however, I think that AWS can do a better job than just myself and a few dedicated servers).
回答2:
From the Documentation Important Amazon S3 event notifications typically deliver events in seconds but can sometimes take a minute or longer. On very rare occasions, events might be lost.
We are seeing lost events right now. A lot in volume but low by percentage.
来源:https://stackoverflow.com/questions/34238446/are-aws-s3-event-notifications-guaranteed-to-be-delivered