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

AWS DynamoDB:如何订购使用DynamoDB Stream触发的Lambda?

孟翰藻
2023-03-14

我已经启用了我的表的DynamoDB Streaming,并且有两个lambda与之关联。每当DynamoDB表中发生变化时,这两个触发器都通过Dynamo触发器。

问题:两个Lambda相应地将数据插入到两个RDS表中。就像λ1插入表1和λ2插入表2一样。表1主键是表2中的外键。

因此,每当两个lambda都触发lambda two首先完成执行时,它会显示外键约束错误,因为lambda two试图将数据插入表2中,但当时表1还没有主键。

所以我的问题是有没有办法通过DynamoDB命令触发lambda?

共有2个答案

齐朝明
2023-03-14

在内部实现了类似的功能。但我们没有通过AWS步长函数增加复杂性,而是使用了AWS Lambda目的地。支持4种类型的目的地

  1. SQS队列(在这种情况下可以是FIFO)
  2. 社交网络话题
  3. 事件桥
  4. 另一个Lambda函数本身

节省了服务周围的大量移动,并且集成非常容易实现。

郝君博
2023-03-14

AWS Step Functions是编排Lambda函数的完美AWS功能,专门为此类工作流构建。它确保后续功能的顺序执行,还提供了处理错误的方法,例如在某些功能失败时回滚并保持一致性。

下面是一个逐步的演练:使用AWS step函数和AWS Lambda创建一个无服务器工作流

话虽如此,如果您需要在数据库中保持参照完整性,使用单个Lambda函数将两个记录的创建包装到一个事务中可能会简单得多。在这种情况下,数据库本身将负责维护一致性。如果它应该是原子写入操作,则没有理由将其分成两个函数。

 类似资料:
  • 我正在用Spring、maven和Apache Tomcat 7创建一个Java的web项目。在这个项目中,我有一个这样的web.xml: 当我启动Tomcat时,控制台上会出现以下消息: 我在ApacheTomcat6上也尝试过同样的方法,但没有遇到任何问题。知道吗?

  • 我是新的数据流和发布子工具在GCP。 需要将prem过程中的电流迁移到GCP。 当前流程如下: 我们有两种类型的数据馈送 Full Feed–其adhoc作业–完整XML的大小约为100GB(单个XML–非常复杂的一个–完整的数据–ETL作业处理此XML并将其加载到约60个表中) 单独的ETL作业用于处理完整提要。ETL作业过程完全馈送并创建负载就绪文件,所有表将被截断并重新加载 源系统每30分钟

  • 问题内容: 我目前有使用PIVOT生成如下表的查询: 我想做的是,但看起来像是拉伸,结果是值递减。 这是查询: 这样做会产生错误,因此可以指定列吗? 问题答案: 试试这个:

  • 问题内容: 我有一个与数据库对话的servlet,然后返回一个有序(按时间排序)对象的列表。在servlet部分,我有 从日志中,我可以看到数据库以正确的顺序返回了User对象。 在前端,我有 但是顺序改变了。 我只在返回的列表很大(超过130个用户)时才注意到这一点。 我尝试使用Firebug进行调试,Firebug中的“响应选项卡”显示列表的顺序与servlet中的日志不同。 我做错了什么吗?

  • 问题内容: 当前,我正在使用node.js和redis来构建应用程序,使用redis的原因是由于发布/订阅功能。该应用程序只是在用户进入用户或不在房间时通知管理员。 由于我想听join和disjoin事件,我的问题是我是否应该使用两个redisclient来听这两个事件,例如 或者只是使用一个redisclient来监听和分离回调中的逻辑 我知道这两种方式都是可行的,但是我不知道人们在哪种情况下会