【发布时间】:2016-09-10 23:57:06
【问题描述】:
我有一个简单的 lambda 函数,它异步进行 API 调用,然后返回数据。 99% 的时间这都很好。当 API 花费的时间超过 lambda 配置的超时时间时,它会按预期给出错误。现在的问题是,当我对 lambda 函数进行任何后续调用时,它会永久地给我超时错误。
"errorMessage": "2016-05-14T22:52:07.247Z {session} Task timed out after 3.00 seconds"
为了测试是否是这种情况,我将 lambda 超时设置为 3 秒,并有办法在 lambda 中触发这两个函数。
Javascript
function now() {
return response.tell('success');
}
function wait() {
setTimeout(function() { return response.tell('success'); }, 4000);
}
当我调用now 函数时没有问题。当我调用 wait 函数时,我收到超时错误,然后对 now 的任何后续调用都会给我同样的错误。
这是预期的行为吗?我认为对 lambda 函数的任何后续调用都应该有效。我知道我总是可以增加配置超时,但宁愿不要。
【问题讨论】:
-
你捕获日志吗? cloudwatch 中的任何内容
-
这是我在上面一遍又一遍地发布的错误消息。
-
我一直在玩同样的问题。在进行任何库导入之前,我将 console.log 作为索引处理程序文件的第一行。该console.log 命中随后的超时,但之后没有日志!它正在停止进口。我不知道 AWS 在做什么,但由于某种原因它无法加载外部库失败(或者需要很长时间)。
-
similar question 我经常看到人们询问 Node.js,但这在 Python(至少 3.6)中也是一个问题。 @duhseekoh 经历过同样的事情:从第一行打印什么也不返回。
标签: node.js amazon-web-services aws-lambda