我有一个用 python 编写的 AWS lambda 函数,它需要一种操作表中存储的数据的方法。 我的解决方案是使用 pandas 将表作为 parquet 文件读取。 虽然这有效,但一旦我添加 pandas 层(即使没有任何计算),该 lambda 函数的冷启动就会从约 400 毫秒变为 2000 毫秒。 我想知道是否有任何选项可以让我的冷启动时间少于 1000 毫秒? 该函数的总计算时间为 <100ms, so it's a shame to have it so inflated.
Pandas 是一个强大但笨重的库。由于冷启动时间取决于部署包的大小(包括层大小),因此请考虑使用更轻的替代方案,例如:
Polar,这是一个更快、更轻的 DataFrame 库,具有与 Pandas 类似的功能
PyArrow 一个轻量级且针对 Parquet 文件和 Arrow 表进行优化的工具。
如果需要 Pandas,请尝试减少 Lambda 层并排除任何不必要的文件,例如“测试、文档”
冷启动主要是由于初始化时间引起的,因此您可以使用 AWS Lambda 预置并发,这将使您的函数的某些实例保持温暖并准备好为流量提供服务,而不会受到冷启动的影响,但您需要放入您认为此功能是付费的,而不是免费的。