How to trigger a Lambda on S3 file upload
You can use event notification in S3. It has direct integration with Lambda, SNS, SQS
-
Goto properties tab in S3
-
Navigate to Event notification. click on create event notification.
-
Then add the event name.
-
If you want to restrict the event to a specific folder or file type, you can fill in prefix or suffix fields or if you want it for entire bucket leave those blank.
-
Then select a list of events. like put, post.
-
Then choose the destination and click on save. You will be notified.
As of 2021-11-29, Amazon Event Bridge now supports Amazon S3 Event Notifications without having to enable CloudTrial.
In the properties of the S3 bucket you want to monitor, you have to enable Amazon EventBridge.
This will allow you to send messages to EventBridge using Rules.
In your eventbridge rule, you can configure lambda as a "Target". I made a step-by-step tutorial on how to configure eventbridge in AWS if you want to follow along: https://youtu.be/k-jEuNb_KBM