amazon网络服务-单个DynamoDB流上的多个AWS Lambda函数



我有一个Lambda函数,多个DynamoDB流被配置为事件源,这是一个更大管道的一部分。在进行检查时,我在其中一个下游组件中发现了一些缺失的数据。我想写一个更简单的Lambda函数,它被配置为前面提到的DynamoDB流之一的事件源。这会导致我的一个DynamoDB流有两个Lambda函数从中读取。我想知道这是否可以?这两个Lamdba函数是否都能保证接收流中的所有记录,以及是否存在我需要注意的任何资源(读/写吞吐量)限制。在AWS网站上找不到任何相关的文档,但我确实找到了关于碎片处理的文档

要访问流并在中处理流记录,必须执行以下内容:

  • 确定要访问的流的唯一亚马逊资源名称(ARN)
  • 确定流中的哪些碎片包含您感兴趣的流记录
  • 访问碎片并检索所需的流记录

注意:从同一个进程读取的进程最多不应超过2个同时流化碎片。每个碎片有2个以上的读取器可能导致节流。

不确定以上内容与Streams被配置为Lambdas的事件源而不是使用API手动读取Stream的情况有何关系。

可以有多个Lambda使用同一流作为事件源。他们不会互相干扰。但正如文件所说:;注意:同一时间从同一个Streams碎片读取的进程最多不应超过2个。每个碎片有2个以上的读卡器可能会导致限制"因此,如果你大量使用你的流,你不应该有超过两个Lambda连接到它们。

这篇AWS博客文章https://aws.amazon.com/de/blogs/database/how-to-perform-ordered-data-replication-between-applications-by-using-amazon-dynamodb-streams/建议您只将一个Lambda附加到DDB流,并使用扇出模式进行并行处理。这将帮助您按顺序处理DDB项目。

最新更新