配合变更流使用 AWS Lambda - Amazon DocumentDB

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

配合变更流使用 AWS Lambda

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

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

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

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

限制

以下是使用 Amazon DocumentDB 和 AWS Lambda 时要考虑的限制:

  • AWS Lambda 目前仅在 Amazon DocumentDB 4.0 和 5.0 上受支持。

  • AWS Lambda 目前在弹性集群或全局集群上不受支持。

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