我在api网关后面有一个简单的python函数。冷启动时,lambda的执行时间不到300毫秒(从cloudwatch日志确定),但api网关返回事件需要花费13.99秒。在后续调用中,它将在350毫秒内返回到api网关端点。
此lambda函数位于vpc内,为了数据库安全性,我希望将其保留在那里。还有其他lambda函数可以在相同的网络配置下正常运行,所以这不是问题。以前有没有人处理过?
答案 0 :(得分:1)
是的,VPC lambda的冷启动时间非常长。不过你错了;您一直都在支付VPC罚款。您在Cloudwatch日志中看到的lambda执行时间不包括冷启动时间;该执行时间反映了lambda实际执行时您需要付费的时间。您无需为lambda容器启动,获取ENI等所需的时间付费。
关于VPC lambda冷启动需要多长时间的更准确的描述是Cloudwatch中的API网关“集成延迟”指标。虽然有希望; AWS计划重新设计VPC中的Lambda如何获取其ENI,并使该过程更快。 You can read about that here.
答案 1 :(得分:0)
问题是ENI冷启动。对于将来遇到此问题的任何人,我要解决的方法是,我通过cloudwatch事件触发了每隔14分钟需要VPC连接的所有lambda函数。长期以来的问题已经解决。该链接向我指出了这样一个事实:对于VPC中的lambda,该连接保持活动状态15分钟:https://www.jeremydaly.com/lambda-warmer-optimize-aws-lambda-function-cold-starts/