Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AWS SNS processing multiple message in one Lambda

I have a process that in a very quick period of time is publishing many SNS messages that would be processed by Lambda. However, Lambda is processing it one at the time. Is it a way to apply something similar to SQS long pooling?

I have code:

exports.saveLog = async (event) => {
  console.log('Event : ', event.Records.length);

  event.Records.forEach(record => {
    const sql = record.Sns.Message;
...

I would like to Lambda receive a set of messages if they are published in a short period of time - Is it possible?

like image 759
bensiu Avatar asked Sep 04 '25 02:09

bensiu


1 Answers

Amazon SNS is essentially just a pub-sub system that allows you to publish a single message that gets distributed to one or more subscribed endpoints.

To process multiple messages in a single downstream process, you can add an Amazon SQS Queue that picks up the messages from the SNS topic and a Lambda function that retrieves the messages in batches from the queue.

like image 95
Dennis Traub Avatar answered Sep 07 '25 18:09

Dennis Traub