Daw*_*hoi 4 node.js aws-lambda serverless-framework
我目前正在使用带有无服务器框架的 AWS Lambda构建Web API .
在我的lambda函数中,每个函数都连接到Redis(elasticache)和RDB(Aurora,RDS)或DynamoDB以检索数据或写入新数据.我的所有lambda函数都在我的VPC中运行.
一切正常,除了在最后一次执行后首次执行或执行一个lambda函数时,执行lambda函数需要相当长的时间(1-3秒),或者有时甚至会响应网关超时错误(周围) 30秒),即使我的lambda函数配置为60秒超时.
正如指出这里,我想1-3秒用于初始化一个新的容器.但是,我想知道是否有办法减少这个时间,因为1-3秒或网关超时并不是生产使用的理想选择.
你有两个问题:
1-3秒延迟.使用Lambda时,这是预期的,并且有详细记录.正如@Nick在评论中提到的,防止容器进入睡眠状态的唯一方法就是使用它.您可以使用Lambda Scheduled Events以每分钟使用速率表达式执行您的函数rate(1 minute).如果您向函数添加一些参数以帮助您区分真实请求和其中一个ping请求,您可以立即返回ping请求,然后您就解决了问题.它会花费你更多,但如果有的话,我们可能每个月都会说几美分.Lambda拥有慷慨的免费等级.
30秒的延迟是不寻常的.我肯定会检查您的CloudWatch日志.如果从功能正常工作时看到日志,但是当看到30秒超时时没有记录,那么我认为问题出在API网关而不是Lambda.如果您确实看到日志,那么他们可以帮助您排除故障.另一个要检查的地方是AWS Status Page.我有时会看到Lambda函数超时并且间歇性地响应,我只是想知道亚马逊的问题已经解决了,他们正在研究它.
这是一篇博客文章,其中包含有关Lambda Container Reuse的其他信息,虽然有点旧,但仍然有一些很好的信息.
| 归档时间: |
|
| 查看次数: |
1018 次 |
| 最近记录: |