DynamoDB 直播和触发器 Amazon Lambda - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

DynamoDB 直播和触发器 Amazon Lambda

Amazon DynamoDB Amazon Lambda 与之集成,因此您可以创建触发器,即自动响应 DynamoDB Streams 中事件的代码片段。利用触发器,可以创建应用程序,应对 DynamoDB 表的数据修改。

如果您在表上启用 DynamoDB Streams,则可以将流的亚马逊资源名称 (ARN) 与您编写的函数相关联。 Amazon Lambda 然后,对该 DynamoDB 表执行的所有变更操作都可以作为流中的项目捕获。例如,您可以设置触发器。这样,在修改了表中的某个项目时,该表的流中会立即出现一条新记录。

注意

您可以订阅两个以上的 Lambda 函数,但是如果对一个 DynamoDB 流使用两个以上的 Lambda 函数,则可能会导致读取限制。

Amazon Lambda 服务每秒轮询四次流来查找新记录。在有新的流记录可用时,将同步调用您的 Lambda 函数。同一个 DynamoDB 流上最多只能有两个 Lambda 函数订阅。

Lambda 函数可以发送通知、启动工作流或执行您指定的任意操作。您可以编写一个仅将每个流记录复制到持久性存储(如 Amazon S3 文件网关 (Amazon S3))中的 Lambda 函数,从而为您表中的写入活动创建永久审计跟踪。或者,假设您有一个写入到 GameScores 表的移动游戏应用程序。每当更新 TopScore 表的 GameScores 属性时,一个相应的流记录将被写入该表的流。然后,此事件会触发一个 Lambda 函数,该函数会在社交媒体网络上发布一条祝贺消息。此函数也可以编写为忽略以下任何流记录:不是对 GameScores 的更新,或者未修改 TopScore 属性。

如果您的函数返回错误,则 Lambda 将重试批处理,直到它成功处理或数据过期。还可以将 Lambda 配置为以较小批处理进行重试、限制重试次数、在记录变得过旧时丢弃以及其它选项。

作为性能最佳实践,Lambda 函数需要短时间运行。为避免引入不必要的处理延迟,它也不应执行复杂的逻辑。特别是对于高速流,最好是触发异步后处理 Step Function 工作流,而不是长时间运行的 Lambda 函数。

您不能在不同的 Amazon 账户中使用相同的 Lambda 触发器。DynamoDB 表和 Lambda 函数必须属于同一个账户。 Amazon

有关的更多信息 Amazon Lambda,请参阅《Amazon Lambda 开发人员指南》