1

我正在使用 S3 批处理操作来调用 lambda 以将一堆数据加载到弹性搜索中。保留并发在 lambda 上设置为 1,同时试验适量的并发。

奇怪的是,在测试时,我看到 S3 连续调用了几次 lambda,然后在 5 分钟内不再进行任何调用。例如:

Lambda 调用

任何想法如何避免这种延迟?帐户上没有发生其他批处理操作,优先级设置为“10”。也许它与保留的并发值有关?虽然根据文档

作业运行时,Amazon S3 会启动多个函数实例以并行处理 Amazon S3 对象,直至达到函数的并发限制。Amazon S3 限制实例的初始增加,以避免小型作业的额外成本。

谢谢

4

1 回答 1

0

删除保留的并发限制1,或将其设置为更高的值。

将 1 设置为保留并发的值会将您的 Lambda 函数的最大并发调用数限制为1

它还限制您的函数使用来自未保留池的并发,通常为1000 个并发调用

这样做的结果是将您的函数限制为在任何给定时间仅运行 1 个实例。

现在,一些有时一个接一个地执行的原因可能是该函数能够在 S3 Batch Operations 发送下一批数据之前足够快地处理一些项目,保持一致,仅运行 1 个实例。

超过保留容量限制的同步请求将因限制错误而失败,这正是这里发生的情况。

于 2021-10-08T19:08:15.123 回答