单个DynamoDB流上的多个AWS Lambda函数

wit*_*ing 4 amazon-web-services aws-lambda amazon-dynamodb-streams

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

要访问流并处理其中的流记录,必须执行以下操作:

  • 确定您要访问的流的唯一Amazon资源名称(ARN)。
  • 确定流中的哪个分片包含您感兴趣的流记录。
  • 访问分片并检索所需的流记录。

注意:同一时间从同一Streams分片读取的数据最多不超过2个。每个分片有两个以上的读取器可能会导致节流。

不确定上述情况与将Streams配置为Lambdas的事件源的情况有什么关系,而不是使用API​​从Streams手动读取的情况。

And*_*ndi 8

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


hel*_*bye 6

您可以使用同一流作为事件源来使用多个Lambda。他们不会互相推断。但是,正如文档所述:“请注意,同一时间从同一Streams分片读取最多最多2个进程。每个分片具有2个以上的读取器可能会导致节流。” 因此,如果您大量使用流,则连接的Lambda不应超过两个。

  • 每个 DDB 分区您将获得 1 个分片。有关详细信息,请参阅此博客文章:https://aws.amazon.com/de/blogs/database/how-to-perform-ordered-data-replication- Between-applications-by-using-amazon-dynamodb-streams/ (2认同)