AWS S3 ObjectCreated 延迟触发 lambda(Lambda 冷启动)

Kos*_*nos 6 amazon-s3 amazon-vpc aws-lambda

我已经为lambda配置了简单的触发器,它在到达S3时处理图像。一般来说,当S3收到图像时, lambda以最小延迟触发,并在同一秒内多次触发。但是,偶尔,大约 7% 的情况下,收到的图像ObjectCreated事件之间存在延迟,该延迟可能长达19 秒!(平均 9-10 秒)。

知道如何避免这种延迟吗?

这种延迟使我无法使用S3->Lambda触发器来实现高性能实时应用程序。

Kos*_*nos 5

一段时间后,尝试调查和谷歌搜索。

在向AWS支持询问该案例的同时,我终于得到了AWS的答案:

--

.. 在我们收到事件后,Lambda 几乎立即调用了该函数,但您共享的特定请求 ID 是针对必须Coldstart的调用,这增加了近10 秒的额外延迟。

该功能位于VPC中,冷启动往往需要多花几秒钟的时间冷启动无法消除,但对于大容量功能,一旦扩大规模并且有更多容器可供重复使用,冷启动的发生率应该会降低。

从答案中您可能会看到,如果您正在尝试制作高性能/高流量的实时应用程序,S3->Lambda 将不适合您的要求。

我的下一个问题是,如果我直接从上传图像的脚本触发 lambda,会有帮助吗?或者我应该避免在此类应用程序上使用 lambda 并仅将其用于后台数据处理?

希望这个答案能帮助其他人。