【发布时间】:2016-09-21 18:21:06
【问题描述】:
由于 Api Gateway 的时间限制是 10 秒来执行任何请求,我试图处理超时错误,但还没有找到捕获和响应自定义消息的方法。
问题的背景:我有一个执行时间不到 2 秒的函数,但是当该函数执行冷启动时,有时它需要超过 10 秒才能在 Java 中创建与 DynamoDB 的连接。我已经使用线程优化了我的函数,但我仍然无法保持初始调用的 10 秒限制。
我需要找到一种方法来提供这样的响应模型:
{
"error": "timeout"
}
为了找到解决方案,我在 Lambda 中创建了一个函数,该函数有意在执行 10 秒后做出响应。与 Api Gateway 集成时,我收到了以下回复:
Request: /example/lazy
Status:
Latency: ms
响应正文
{
"logref": "********-****-****-****-1d49e75b73de",
"message": "Timeout waiting for endpoint response"
}
在文档中,我发现您可以使用集成响应中的 HTTP 状态正则表达式来捕获此错误。但是我还没有找到方法,而且似乎互联网上没有人遇到我同样的问题,因为我在任何论坛都没有找到这个特定的消息。
我已经尝试过使用这些正则表达式:
.*"message".*
Timeout.*
.*"status":400.*
.*"status":404.*
.*"status":504.*
.*"status":500.*
任何人都知道我应该使用女巫正则表达式来捕获此“消息”:“超时...?
【问题讨论】:
标签: amazon-web-services aws-lambda aws-api-gateway