闲置时,带有 Lambda 的 API 网关在第一次调用时返回 404?
Posted
技术标签:
【中文标题】闲置时,带有 Lambda 的 API 网关在第一次调用时返回 404?【英文标题】:API Gateway with Lambda returns 404 on first call when left idle? 【发布时间】:2019-04-14 16:09:04 【问题描述】:我已经使用 API 网关和 Lambda 构建了一个 API。我注意到,当闲置时(通常是几个小时),它会在 first 调用时失败。有没有其他人遇到过这个问题?
我是否应该对我的 API 调用实施重试,或者是否有一些我遗漏的 Lambda 配置?
[INFO] 2019-04-15T03:18:58.263Z SUCCESS: Connection to RDS mysql instance succeeded
这是在 CloudWatch 中为我的 Lambda 函数记录的唯一行。
【问题讨论】:
请分享确切的错误字符串/堆栈跟踪。 404 响应可能来自您的 Lambda 函数。检查您的 Lambda 中的 CloudWatch 日志,看看您是否可以找出您的代码响应 404 的原因。 【参考方案1】:我发现如果由于cold starts 而处于空闲状态,AWS Lambda 调用函数的时间将比平时更长。
我收到的错误是由于 Lambda 花费的时间比我定义的 http 请求返回响应的超时时间长。
我已按照建议从我的 Lambda 函数中删除了 VPC,以缩短冷启动时间,此后我没有遇到任何 Lambda 冷启动问题。
【讨论】:
以上是关于闲置时,带有 Lambda 的 API 网关在第一次调用时返回 404?的主要内容,如果未能解决你的问题,请参考以下文章
带有 Cognito 的 AWS Lambda API 网关 - 如何使用 IdentityId 访问和更新 UserPool 属性?
发布带有“https://”的字符串时,API 网关返回 Forbidden
如何将响应放在 websocket api 网关后面的单独 lambda 中?
来自 API 网关 VS kinesis Streams 的 Lambda