当前位置: 首页 > 知识库问答 >
问题:

DynamoDB未触发lambda

濮俭
2023-03-14

我正在试验Dynamo db和lambda,并且在以下流程中遇到问题:

Lambda A由put to S3事件触发。它获取对象(一个音频文件),计算其持续时间,并在dynamoDB中为每30秒的段写入一条记录。

Lambda B由DynamoDB触发,从S3下载文件并对Dynamo行中定义的30秒记录进行操作。

我的问题是,当我运行这个流时,函数A通过函数B写入Dynamo所需的所有行

  • 似乎没有为dynamo中的每一行触发
  • 5分钟后超时

配置

  • 函数B设置为最高内存和5分钟到期
  • 触发器设置为批量大小为1,起始位置最新

我已经确认的事情

  • 当函数B被触发时,从S3的下载发生得很快。这似乎不是阻止者
  • 当我用测试事件触发函数B时,它会完美执行。
  • 当我查看cloud dwatch指标时,函数B的调用错误率接近100%。我不知道这是否意味着他的函数被调用并出现错误或根本无法调用。

有没有人有过类似的问题?知道下一步要查什么吗?谢谢

共有2个答案

邢凯歌
2023-03-14

检查DynamoDB“Stream”是否在表上启用。

签出此

lambda默认为5分钟超时,您可以在论坛中找到这一点。

司寇阳朔
2023-03-14

我有同样的问题,解决方案是从Lambda创建一个VERSION,而不是使用$LATEST版本,而是“固定”版本。

不可能使用最新的不断变化的版本来构建触发器。

执行此操作的地方:Lambda/Functions/YourLambdaName/页面上的限定符下拉列表/切换版本/别名/版本选项卡-

如果没有-

 类似资料:
  • 假设: 让我们假设数据插入DynamoDB的速率是巨大的。 上下文: 在DynamoDB表上启用流,这将触发lambda。lambda读取流记录,并在弹性搜索中对记录进行索引。 问题陈述: 在将记录插入DynamoDB的时间和通过流式记录触发lambda的时间之间存在延迟。这种延迟或滞后不断增加,并且与插入DynamoDB的数据量成正比。 如何找到滞后的位置?是流没有立即触发lambda吗?还是因

  • 我正在尝试使用DynamoDB流和AWS Lambda创建DynamoDB触发器。我做了很多研究,但在Java 8中找不到任何读取和处理DynamoDB流事件的方法。我对这两种技术都是新手,所以不知道如何使用它。 本质上,我想做的是每当在表A中创建记录时,都在表B中创建一条记录。 你们谁能给我指出一个在Java中处理这个用例的代码或帖子吗? 谢谢:)

  • 是否存在防止DynamoDB流在每次DynamoDB更改时触发λ的方法? 这些数字并不准确,但是假设step函数将连续运行10次,那么它将更新DynamoDB 3次。在step函数触发lambda之前,这是调用lambda的30倍。有什么方法可以阻止这些lambda调用吗?

  • 我已经启用了我的表的DynamoDB Streaming,并且有两个lambda与之关联。每当DynamoDB表中发生变化时,这两个触发器都通过Dynamo触发器。 问题:两个Lambda相应地将数据插入到两个RDS表中。就像λ1插入表1和λ2插入表2一样。表1主键是表2中的外键。 因此,每当两个lambda都触发lambda two首先完成执行时,它会显示外键约束错误,因为lambda two试

  • 我有一张如下的桌子 数据将从AWS Lambda函数一致地插入到此表中。(可能是数百万个项目) 我有一个用例,当表中有100个可用项时,我需要有一个触发器来执行一些批处理。换句话说,一旦我们在这个表中创建了100个新项目,我希望有一个Lambda触发器函数来对100个项目执行批处理。 当我研究时,DynamoDB流似乎可以支持批处理,但根据文档我不太清楚。 Lambda分批读取记录,并调用函数处理

  • 我有一个dynamoDb表,它设置为两个区域之间的全局(2019版)。 我在表上分配了一个lambda函数作为触发器。当一条记录插入到表的东版本中时,就会触发lambda的东版本。然后将记录复制到表的西版本,并触发lambda的西版本。 我想要一个λ触发。但是我也希望两个触发器都启用,以防一个区域出现故障。 我怎样才能做到这一点?我宁愿不使触发器逻辑幂等。