假设:
让我们假设数据插入DynamoDB的速率是巨大的。
上下文:
在DynamoDB表上启用流,这将触发lambda。lambda读取流记录,并在弹性搜索中对记录进行索引。
问题陈述:
在将记录插入DynamoDB的时间和通过流式记录触发lambda的时间之间存在延迟。这种延迟或滞后不断增加,并且与插入DynamoDB的数据量成正比。
如何找到滞后的位置?是流没有立即触发lambda吗?还是因为有巨大的发电机,数据流受到阻碍?或者,在给定的一秒钟内,lambda不能达到一定次数的限制是什么?
我不知道问题出在哪里,因为我甚至看不到当前流是否仍然包含记录,或者流中的记录是否已经交付,但lambda触发器是延迟?
延迟示例:我们昨天写了大量的文章,今天我们看到这些记录达到了lambda!难以置信的延迟!:)
有什么建议吗?
来自Lambda文档
对于处理Kinesis或DynamoDB流的Lambda函数,碎片数是并发单元。如果流中有100个活动碎片,则最多会同时运行100个Lambda函数调用。这是因为Lambda按顺序处理每个碎片的事件。
创建碎片的逻辑不会向最终用户公开。但这取决于RSU和WSU。但是增加太多会花费你的钱。
最重要的是,并发lambda par帐户有一个限制。取决于您的操作区域(请参见此处)。
你可以做以下几件事
是否存在防止DynamoDB流在每次DynamoDB更改时触发λ的方法? 这些数字并不准确,但是假设step函数将连续运行10次,那么它将更新DynamoDB 3次。在step函数触发lambda之前,这是调用lambda的30倍。有什么方法可以阻止这些lambda调用吗?
我正在试验Dynamo db和lambda,并且在以下流程中遇到问题: Lambda A由put to S3事件触发。它获取对象(一个音频文件),计算其持续时间,并在dynamoDB中为每30秒的段写入一条记录。 Lambda B由DynamoDB触发,从S3下载文件并对Dynamo行中定义的30秒记录进行操作。 我的问题是,当我运行这个流时,函数A通过函数B写入Dynamo所需的所有行 似乎没有
我有一张如下的桌子 数据将从AWS Lambda函数一致地插入到此表中。(可能是数百万个项目) 我有一个用例,当表中有100个可用项时,我需要有一个触发器来执行一些批处理。换句话说,一旦我们在这个表中创建了100个新项目,我希望有一个Lambda触发器函数来对100个项目执行批处理。 当我研究时,DynamoDB流似乎可以支持批处理,但根据文档我不太清楚。 Lambda分批读取记录,并调用函数处理
我有一个dynamodb表,它通过启用dynamodb流来触发lambda函数。这是从Dynamodb控制台设置的。然而,我希望能够将触发器指向lambda函数的特定版本/别名。大多数其他AWS服务允许您指定lambda ARN,您可以在其末尾标记版本或别名,如ARN:AWS:lambda::function::
我正在尝试使用DynamoDB流和AWS Lambda创建DynamoDB触发器。我做了很多研究,但在Java 8中找不到任何读取和处理DynamoDB流事件的方法。我对这两种技术都是新手,所以不知道如何使用它。 本质上,我想做的是每当在表A中创建记录时,都在表B中创建一条记录。 你们谁能给我指出一个在Java中处理这个用例的代码或帖子吗? 谢谢:)
我已经启用了我的表的DynamoDB Streaming,并且有两个lambda与之关联。每当DynamoDB表中发生变化时,这两个触发器都通过Dynamo触发器。 问题:两个Lambda相应地将数据插入到两个RDS表中。就像λ1插入表1和λ2插入表2一样。表1主键是表2中的外键。 因此,每当两个lambda都触发lambda two首先完成执行时,它会显示外键约束错误,因为lambda two试