我有一个用 Python 编写的 lambda 函数,它使用几个重量级依赖项(NumPy、pandas、goodtables 等)并且还连接到 VPC(用于访问 Postgres RDS 实例)
此函数的冷启动执行时间在一段时间后(> 4-6 小时)执行时非常大(16.2 秒)
但是,如果我更新函数代码并再次调用它(第一次执行后不久),冷启动执行时间会急剧减少(3 秒)
如果我在不更新的情况下再次调用该函数,这是一个热启动,则执行时间会进一步缩短(313 毫秒)
我怀疑第一次冷启动(16.2 秒)是在 Lambda 设置 ENI 以访问 VPC 资源时,并且在第二次冷启动(3 秒)期间重复使用 ENI,因此可以避免重新创建 ENI 所花费的时间。
我正在尝试优化此功能的冷启动时间,并希望它从头开始,以查看在完全冷启动(即没有 ENI + 冷启动)时它的执行速度。
有没有办法做到这一点并反复执行?
我有一个AWS Lambda函数,该函数在冷启动时通过s3调用创建对象。然后,我在函数预热时将对象保存在缓存中,以减少加载时间。在s3中更改文件时,我有一个触发器来运行lambda,但并非所有正在运行的lambda实例都会重新启动并从s3中提取。
是否有办法降低所有强制完全冷启动的lambda实例?
另外,我不想使用python。