根据 DynamoDB 中的属性值触发 Lambda 函数

Trigger Lambda function based on attribute value in DynamoDB

我有一个 DynamoDB table,其项目具有以下属性:id、用户、状态。状态可以取值 A 或 B。

  1. 是否可以仅根据属性 'status' 的值触发 lambda?

例如,当向 DDB 添加状态 == A 的新项目或当现有项目的状态更新为 A 时触发 lambda。 (我正在研究 DynamoDB 流以实现此目的,但我还没有遇到任何人将它用于此用例的示例。)

  1. 是否可以根据某个属性的值监控 DDB?

例如,当状态 == B 时,我不想触发 lambda,但只为该行发出一个指标。基本上,我想要一个指标来查看 table 中有多少项在给定点具有状态 == B。

如果不是来自 DynamoDB,以上两种是否适用于任何其他存储类型?

是的,正如您的初步研究所发现的,这是您需要使用 DynamoDB Streams 的目的。

您可以根据正在写入、更新或从 Dynamo DB 中删除的项目触发 lambda 函数,并且您可以配置您的流订阅以仅过滤您关心的属性和值。

DynamoDB 最近引入了在调用您的函数之前过滤流事件的功能,您可以阅读更多有关其工作原理和配置方法的信息here

有关 DynamoDB Stream 用例的更多信息,this post 可能会有帮助。