我遇到由 DynamoDB 流触发的 Lambda 函数的延迟问题。尽管使用 Node.js 16.x 配置 Lambda,超时为 5 分钟,内存分配为 1536,但触发器仍需要 5 分钟以上才能启动 Lambda 执行。
如何减少这个触发时间?我尝试增加 Lambda 内存和超时设置,但尚未解决延迟问题。任何有关优化触发时间的建议或见解将不胜感激。
Lambda 设置:
NodeJs 16.x
5 minute timeout
1536 memory configuration
您的 EventSourceMapping 需要正确配置,它与您的 Lambda 内存无关。
5 分钟是默认的批处理窗口时间。发生的情况是您没有满足分片中默认的 100 个项目来调用该函数,因此它正在等待批处理窗口来触发该函数。
Batch size
– 每批发送到函数的记录数,最多 10,000 条。只要事件的总大小不超过同步调用的负载限制 (6 MB),Lambda 就会在一次调用中将批处理中的所有记录传递给函数。
Batch window
– 指定调用函数之前收集记录的最长时间(以秒为单位)。
我的建议是降低这两者的价值。批量大小应该足够小,以便您在 Y 时间内累积 N 数量的更改。 Y 是您认为调用该函数合理的时间。