AWS Lambda:我是否可以返回上下文并让任务仍在运行?

现在我在生产中有一个lambda函数来处理日志string,然后将它们返回给客户端,所以:

1) string received by lambda 2) lambda transforms string 3) lambda returns via context.succeed the transformed string 

现在我添加一个额外的步骤,将string保存在dynamodb表中,所以工作stream将是:

 1) string received by lambda 2) lambda transforms string 3) lambda saves string to dynamo 4) lambda returns via context.succeed the transformed string 

现在的位保存function是这样的:

 function _saveItem (item) { dynamo.putItem(item, function (err, data) { //error handling here context.succeed(JSON.stringify(item)); }) } 

我想知道是否有可能触发putItem函数,并没有等待它结束,通过context.succeed返回项目

我假设你正在使用“RequestResponse”风格调用。 真的吗?

如果您希望立即返回值,则可以始终调用另一个Lambda函数(使用“Event”调用),并将该函数写入DDB,然后返回该值。

“事件”调用将在后台asynchronous运行。

我相信简短的回答是,一旦context.succeed被调用,asynchronous调用就不会完成。 但是,通过这篇博客文章 ,您可以更详细地了解Lambda和这个用例。