只能在api网关上进行长时间的冷启动吗?

时间:2019-04-26 23:14:09

标签: python aws-lambda aws-api-gateway

我在api网关后面有一个简单的python函数。冷启动时,lambda的执行时间不到300毫秒(从cloudwatch日志确定),但api网关返回事件需要花费13.99秒。在后续调用中,它将在350毫秒内返回到api网关端点。

此lambda函数位于vpc内,为了数据库安全性,我希望将其保留在那里。还有其他lambda函数可以在相同的网络配置下正常运行,所以这不是问题。以前有没有人处理过?

2 个答案:

答案 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/