Lau*_*ves 5 amazon-web-services amazon-dynamodb aws-lambda amazon-dynamodb-streams
我正在编写一个 Lambda 函数来处理来自 DynamoDB 流的项目。
我认为 Lambda 背后的部分观点是,如果我有大量事件爆发,它会启动足够多的实例来同时处理它们,而不是通过单个实例按顺序提供它们。只要两个事件有不同的键,我就可以处理它们的乱序。
但是,我刚刚阅读了有关“了解重试行为”的页面,其中说:
对于基于流的事件源(Amazon Kinesis Data Streams 和 DynamoDB 流),AWS Lambda 轮询您的流并调用您的 Lambda 函数。因此,如果 Lambda 函数失败,AWS Lambda 会尝试处理出错的记录批次,直到数据过期为止,对于 Amazon Kinesis Data Streams 来说,最长可能需要 7 天。该异常被视为阻塞,并且 AWS Lambda 不会从流中读取任何新记录,直到失败的记录批次过期或成功处理。这可确保 AWS Lambda 按顺序处理流事件。
“AWS Lambda 按顺序处理流事件”是否意味着 Lambda 无法同时处理多个事件?有没有办法让它同时处理来自不同键的事件?
流记录被组织成组或分片。
\n\n根据Lambda文档,并发是在分片级别实现的。在每个分片内,流事件按顺序处理。
\n\n\n\n\n\n\n基于流的事件源:对于处理 Kinesis\n 或 DynamoDB 流的 Lambda 函数,分片数量是并发单位。\n 如果您的流有 100 个活动分片,则最多将有 100 个 Lambda\n 函数调用同时运行。这是因为 Lambda\n 按顺序处理每个分片\xe2\x80\x99s 事件。
\n
\n\n不允许两个以上的进程同时从同一个 DynamoDB\n Streams 分片读取数据。超过此限制可能会导致请求限制。
\n
| 归档时间: |
|
| 查看次数: |
1446 次 |
| 最近记录: |