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

时间:2015-06-04 15:27:32

标签: node.js amazon-web-services amazon-dynamodb aws-lambda

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

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

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

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

返回该项目

2 个答案:

答案 0 :(得分:1)

我假设你正在使用" RequestResponse"风格调用。这是真的吗?

如果你想立即返回你的值,你总是可以调用另一个Lambda函数(使用" Event" invoke),并让该函数写入DDB,然后返回值。

"事件" invoke将在后台异步运行。

答案 1 :(得分:0)

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

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