我有一个lambda配置为由一个批次大小为100和批处理窗口为60的Kinesis流触发。运动流大约每分钟有2个碎片和2K+总记录。我可以想象这会转化为关于20+ lambda的运行。然而,每隔一分钟,我的平均成绩只有5-6分.

我还看到了86K毫秒的iterationAge (大约24小时,我的动态流保存记录长达24小时)。

lambda函数不是一个快速函数,平均运行大约25s。

我没有看到任何错误计数、节流或异步传递失败。


感谢您对如何解决此问题的任何建议。
发布于 2022-07-26 06:46:00
我想这会转化为关于20+ lambda的运行
它不是那样工作的。如果您有两个碎片,那么您将只有两个并发的 lambda函数(一个=一个函数),否则您的记录将被无序处理。
平均运行25秒。
这就是为什么每分钟大约有5-8个lambda调用:。
2 shards x 4 invocations for each function within 1 minute您必须为您的函数增加并行化因子。但是这要求您的记录在碎片中有不同的分区键。如果它们具有相同的分区键,则parallelization将无法工作。
https://stackoverflow.com/questions/73116363
复制相似问题