如何在VPC上强制完全冷启动AWS lambda函数?

问题描述 投票:1回答:2

我有一个用Python编写的lambda函数,它使用了几个重量级依赖项(NumPy,pandas,goodtables等),并且还连接到VPC(用于访问Postgres RDS实例)

一段时间后(> 4-6小时)执行此功能的冷启动执行时间很长(16.2秒)

但是,如果我更新功能代码并再次调用它(第一次执行后不久),冷启动执行时间会急剧减少(3秒)

如果我再次调用该函数而不更新它,那么它是一个热启动,执行时间进一步下降(313毫秒)

我怀疑第一次冷启动(16.2秒)是Lambda设置ENI以访问VPC资源并且ENI在第二次冷启动(3秒)期间重复使用,因此避免了重新创建ENI所花费的时间。

我正在尝试优化此功能的冷启动时间,并希望它从头开始,看看它在启动完全冷时可以执行多快(即没有ENI +冷启动)。

有没有办法做到这一点,并反复做?

amazon-web-services aws-lambda performance-testing
2个回答
0
投票

您可以尝试发布lambda函数的新版本以进行测试,而不仅仅是修改代码。据AWS称,每次发布lambda函数的新版本时,运行函数的所有容器都将被销毁,然后重新创建,这将强制完全冷启动。


0
投票

我想知道同样的事情,虽然你可以在测试场景中“保留”保留计数为零,但很可能在生产计划中不可行。为此,请查看Force Discard AWS Lambda ContainerRestarting AWS lambda function to clear cache中的答案。


0
投票

您可以切换内存,保存并重新将其重置。

您还可以添加新的环境变量。

这会强制处理所有现有的温暖lambda,并在下一次调用lambda时进行新的冷启动。

© www.soinside.com 2019 - 2024. All rights reserved.