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

如何实现Lambda触发器在全局dynamoDb表上触发一次

宦翔飞
2023-03-14

我有一个dynamoDb表,它设置为两个区域之间的全局(2019版)。

我在表上分配了一个lambda函数作为触发器。当一条记录插入到表的东版本中时,就会触发lambda的东版本。然后将记录复制到表的西版本,并触发lambda的西版本。

我想要一个λ触发。但是我也希望两个触发器都启用,以防一个区域出现故障。

我怎样才能做到这一点?我宁愿不使触发器逻辑幂等。

共有3个答案

卫松
2023-03-14

我认为您可以使用FIFO SQS进行此操作。响应dynamoDB流的Lambda可以写入FIFO SQS。

吴宏扬
2023-03-14

在不了解更多您正在做的事情的情况下,如何不直接写入DynamoDB,而是首先写入本地Step函数。数据在step函数中处理,然后写入DynamoDB。这样,当它到达DynamoDB时,它已经被“处理”了,并且复制过程没有问题。我不确定这是否有效,因为我不知道你的全部情况,但可能会。

茅桐
2023-03-14

我不知道这是否可以在没有幂等性的情况下实现,除非你想让它变得非常脆弱和复杂。在分布式系统中,如果不使用某种幂等滤波器,就很难(如果不是不可能)精确地获得一次端到端的传递。

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

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

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

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