我通过API GW调用的node4 lambda函数生成一系列缓慢的API调用。 为了不让用户等到一切都完成,我计划让代码看起来像这样:
function(event, context, callback) {
...
// Return users API GW call now
callback(null, data);
// Do the heavy lifting afterwards.
longApiCall().then(otherLongApiCalls)
}
但现在我在AWS docs读到了: "回调将等到Node.js运行时事件循环为空,然后冻结进程并将结果返回给调用者"
这是否意味着API GW在longApiCalls完成之前或之后返回响应数据?
如果之后,是否有建议的方式如何及早返回"一切都结束之前?
答案 0 :(得分:20)
在当前配置中,API网关将等待Lambda函数执行完毕后再发送响应。您的选择是:
答案 1 :(得分:0)
选项5.让你的lambda函数将一条消息队列到SQS并从另一个lambda或ec2轮询队列,或者你想要进行繁重的工作。