在一次呼叫中向 SNS 发送多条消息

Sending multiple messages to SNS on a single call

我有一个场景,每次运行 lambda 时,它都会向 SNS 主题发送 1000 条消息。 我可以遍历消息列表并调用发布方法 1000 次,一次一条消息,但我想知道是否有一种方法可以在一次调用中发送多条消息。 在那种情况下,我可以对消息进行批处理并调用发布,比如每次执行 100 条消息时调用 10。

如果有人可以提供帮助,我将不胜感激。

你不能直接通过SNS实现,也许你可以在SNS的前端和后端有一个SQS队列到post并批量接收消息。

https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessageBatch.html

使用SNS publish您可以一条一条地发布消息,AWS不提供批量或批量发布消息到SNS的方法。

以下是您可以尝试的可能解决方案:

您可以使用 send-message-batch API 并向 SQS 发送批量消息。该 SQS 将由 SNS 订阅。下面是创建 SQS 订阅的图像:

SNS 刚刚推出了 PublishBatch API,您可以使用它在单个 API 请求中向 SNS 主题发送最多 10 条消息。有关功能发布的更多信息,请参见此处:https://aws.amazon.com/about-aws/whats-new/2021/11/amazon-sns-supports-publishing-batches-messages-single-api-request/