我什么时候应该使用 DynamoDB 触发器而不是用另一个触发器调用 Lambda?

Uns*_*her 1 amazon-dynamodb aws-lambda amazon-dynamodb-streams

我目前有一个正在更新 DynamoDB 表的 AWS Lambda 函数,并且我需要另一个需要在数据更新后运行的 Lambda 函数。在这种情况下,使用 DynamoDB 触发器而不是使用第一个触发器调用第二个 Lambda 有什么好处吗?

看来,编程调用可以让我更好地控制何时调用 Lambda(即,我可以在调用之前等待多个更新发生),并且从 DynamoDB Stream 读取数据需要花钱,而简单地调用 Lambda 则不需要。

那么,在这里使用触发器有什么好处吗?或者我自己调用 Lambda 会更好吗?

小智 5

DynamoDB Stream 似乎是更好的实践,因为:

  • 您委托您的 writer-Lambda 调用后处理器函数的责任。使 writer 更简单(也称为更快),
  • 您可以简化将新的外部编写器连接到同一个表的过程,否则您还必须实现调用所有外部编写器中的后处理器的逻辑,
  • 您保证所有数据都经过后处理(即使有人在 DynamoDB 的 Web 界面中添加了新项目。:)
  • 从金钱角度来看,从编写器 Lambda 发送 invoke() 操作所花费的执行时间可能会覆盖流的成本。
  • 除非您使用 DynamoDB 事务,否则如果您太早从 writer 调用后处理器,您的数据可能仍然无法用于后处理器。如果您的业务逻辑不需要事务,那么使用它们只是为了解决这个问题=额外的时间/成本。

PS 当然,您可以通过简单的设置从 DynamoDB 流中进行批处理。您不必为每个写入操作调用后处理器。