AWS DynamoDB:如何订购Lambda's由DynamoDB Stream触发



我已经启用了我的表的DynamoDB Streaming,并且有两个lambda与之关联。只要DynamoDB表通过dynamo触发器发生变化,这两个触发器都会。

问题:两个Lambda都相应地将数据插入两个RDS表中。像Lambda一样,一个插入表一,Lambda二插入表二表一主键是表二中的外键

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

所以我的问题是,有什么方法可以通过DynamoDB命令lambda的触发?

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

以下是逐步演练:创建无服务器工作流带有AWS阶跃函数和AWS Lambda

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

确实在内部实现了类似的东西。但是,我们没有通过AWS Step Function增加复杂性,而是使用了AWS Lambda Destinations。有4种类型的目的地支持

  1. SQS队列(在这种情况下可以是FIFO(
  2. SNS主题
  3. 事件桥
  4. 另一个Lambda函数本身

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

最新更新