Amazon Lambda 与变更流一起使用 - Amazon DocumentDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon Lambda 与变更流一起使用

Amazon DocumentDB 已与集成, Amazon Lambda 因此您可以使用 Lambda 函数来处理变更流中的记录。Lambda 事件源映射是一种资源,它可以用来调用 Lambda 函数,以便处理不直接调用 Lambda 的 Amazon DocumentDB 事件。以 Amazon DocumentDB 变更流作为事件源,您可以构建响应数据变化的事件驱动型应用。例如,您可以使用 Lambda 函数来处理新文档、跟踪现有文档的更新或记录已删除的文档。

您可以配置事件源映射以发送来自 Amazon DocumentDB 变更流的记录至 Lambda 函数。可以一次发送一个事件,也可以批量发送以提高效率,并将按顺序处理。您可以根据特定的时间窗持续时间(0-300 秒)或批处理记录计数(最大限值为 10,000 条记录),配置事件源映射的批处理行为。您可以创建多个事件源映射,以使用多个 Lambda 函数处理相同的数据,或使用单个函数处理来自多个流的不同项目。

如果您的函数返回错误,则 Lambda 将重试批处理,直到它成功处理。在变更流中事件已过期的情况下,Lambda 将禁用事件源映射。在这种情况下,您可以创建新的事件源映射,并用您选择的起始位置对其配置。由于轮询器的分布式特性,Lambda 事件源映射至少处理一次事件。因此,在极少数情况下,Lambda 函数可能会收到重复的事件。遵循使用 Amazon Lambda 函数的最佳实践,构建等性函数,以避免与重复事件相关的问题。有关更多信息,请参阅Amazon Lambda 开发者指南中的Amazon Lambda console 与亚马逊 DocumentDB 配合使用

作为性能最佳实践,Lambda 函数需要短时间运行。为避免引入不必要的处理延迟,它也不应执行复杂的逻辑。特别是对于高速流,最好是触发异步后处理 Step Function 工作流,而不是长时间运行的 Lambda 函数。有关的更多信息 Amazon Lambda,请参阅《Amazon Lambda 开发人员指南》

限制

以下是使用亚马逊 DocumentDB 时需要考虑的限制,以及: Amazon Lambda

  • Amazon Lambda 目前仅支持亚马逊 DocumentDB 4.0 和 5.0。

  • Amazon Lambda 弹性集群或全局集群目前不支持。

  • Amazon Lambda 有效载荷大小不能超过 6MB。有关 Lambda 批量大小的更多信息,请参阅Amazon Lambda 开发者指南Lambda 事件源映射部分的“批处理行为”。