【发布时间】:2021-01-15 09:45:40
【问题描述】:
我有一个 lambda 设置,它的事件源配置了 5 个不同的 SQS 队列。现在,如果 lambda 的批量大小配置为 10,则 lambda 处理程序中 SQSEvent 中的 10 条记录将来自同一个队列,还是批处理中的 10 条记录来自 5 个队列中的任何一个?
【问题讨论】:
-
我没有遇到任何关于该案例的文档,但我很确定所有记录都来自同一个队列。因为组合来自多个队列的消息将是调用 lambdas 的中间服务的额外工作。它只是轮询一个队列并调用 lambda,那里没有那么多逻辑。请注意,即使批量大小为 10 并且有 10 条记录,您也可能不会获得包含 10 条消息的批次,而是较小的批次。只有当队列中有非常人的消息时,批次才会真正生效。 (除非您配置批处理窗口)
-
每个队列都有自己的 URL。如果您想从不同的队列中获取消息,您还需要调用 sqs.receiveMessage 方法 5 次,每次使用特定的队列 url。
标签: amazon-web-services aws-lambda amazon-sqs