AWS Lambda:我可以 return 上下文并让任务仍然 运行 吗?

AWS Lambda: Can I return context and have a task still running?

现在我在生产中有一个 lambda 函数,它处理日志字符串,然后 return 将它们发送给客户端,所以:

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

现在我要添加一个额外的步骤,将字符串保存在 dynamodb table 中,因此工作流程将是:

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 _saveItem (item) {
    dynamo.putItem(item, function (err, data) {
        //error handling here
        context.succeed(JSON.stringify(item));
    })
}

我想知道是否可以通过某种方式触发 putItem 函数,并且不等待它结束,通过 context.succeed

return 项目]

我相信简短的回答是一旦调用 context.succeed 异步调用将不会完成。但是,您可以通过 this blog post.

更详细地了解有关 Lambda 和此用例的更多信息

我假设您使用的是 "RequestResponse" 样式调用。是真的吗?

如果您希望立即 return 编辑您的值,您可以随时调用另一个 Lambda 函数(使用 "Event" 调用),并将该函数写入 DDB,然后 return 值。

"event" 调用将在后台异步 运行。