Lambda在调用回调后定时

ken*_*ken 15 amazon-web-services node.js aws-lambda

我在Javascript的4.3运行时使用了两个lambda函数.我运行第一个,它同步调用第二个(同步是意图).问题是第二次超时(60秒)但实际上仅在22秒后达到成功结束.

这是两个Lambda函数之间的流程:

流

Lamda功能A我不再获取CloudWatch日志,但真正的问题(我认为)是功能B,它没有任何理由超时.

以下是一些CloudWatch日志来说明这一点:

cloudwatch日志

最后的函数B中的代码 - 包括上面的图片中的"成功"日志语句 - 包含在下面:

代码示例

最初我只有callback(null, 'successful ...')行,而不是0.10.xsucceed()从上下文调用的nodejs 方式.绝望中我添加了两个,但结果是一样的.

任何人都知道发生了什么事?我可以用这种方式调试吗?


如果A和B之间的调用逻辑在B开始的状态中产生差异,这里是调用:

调用函数b

小智 28

正如迈克尔 - sqlbot所说; 问题似乎是只要存在开放连接,由于非空事件循环,调用回调不会终止该函数.打开Redis连接时遇到同样的问题; 如上所述的解决方案context.callbackWaitsForEmptyEventLoop = false;