A company has an application that processes events sequentially by using an Amazon SQS FIFO queue. The company needs a solution that automatically sends notifications to the SQS queue when new objects are uploaded to an Amazon S3 bucket. The solution must preserve message ordering.
Which solution meets these requirements with the LEAST operational overhead?
A Create an AWS Lambda function that polls the objects by using the ListObjectsV2 command and detects new objects when the objects are added. Configure the Lambda function to add a message to the SQS queue when new objects are detected. B Create an event notification on the S3 bucket. Use the FIFO delivery option. Route the notifications to the existing SQS queue. C Create an Amazon SNS FIFO topic. Create an event notification on the S3 bucket. Configure the event to send messages to the SNS topic. Subscribe the existing SQS queue to the SNS topic. D Create an access point in Amazon S3 Access Points. Configure the access point to send new items to the existing SQS queue. Show Answer Answer Explanation To preserve strict message ordering into an existing SQS FIFO queue, the notification path must itself be FIFO-aware. An SNS FIFO topic delivers messages in order and only to SQS FIFO subscribers, so routing S3 object-created events through an SNS FIFO topic that the FIFO queue subscribes to is the fully managed pattern that maintains ordering. Option B is the trap: S3 event notifications have no "FIFO delivery option" and cannot target an SQS FIFO queue directly. Option A (Lambda polling ListObjectsV2) is high operational overhead and does not guarantee ordering, and Option D misuses S3 Access Points, which do not emit events to SQS. C is the intended least-overhead ordering-preserving design.
Learn more
Community Discussion