更改 kinesis 的 aws lambda 消费者批量大小是否会导致数据丢失或重复

Ers*_*soy 0 amazon-web-services amazon-kinesis aws-lambda

我有一个现有的kinesis流和多个lambda具有不同批量大小的消费者。我想更新 lambda 的批量大小之一(从 25 到 1000)。由于edit选项不可用,我认为有两个选项(afaik);

第一个是;

  • 从 lambda 控制台禁用 kinesis。
  • 创建一个新的 kinesis 触发器,设置批量大小
  • 删除禁用的一项。

第二个选项;

  • 从 lambda 控制台删除现有的 kinesis
  • 创建一个新的 kinesis 触发器,设置批量大小

我的问题是;

  • 这些选项中的最佳实践是什么,还有更好的选择吗?
  • 在这两种情况下都会出现数据丢失/重复吗?
  • 如果可能的话,如何防止数据丢失或数据重复?

谢谢

Chr*_*ams 5

查看 CLI 中的update-event-source-mapping

使用该选项--batch-size您可以更新建议的批量大小。

一个例子是运行

aws lambda update-event-source-mapping --uuid "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" --batch-size 8

要运行此程序,您将需要 UUID,可以通过list-event-source-mappings命令检索该 UUID 。将 Lambda 的函数名称指定为参数将为您提供触发器。

通过这样做,应该不会丢失数据,并且可以编写脚本,以便轻松回滚。