1

现在我在生产中有一个 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

4

2 回答 2

1

我假设您正在使用“RequestResponse”样式调用。真的吗?

如果您希望立即返回您的值,您可以随时调用另一个 Lambda 函数(使用“事件”调用),并让该函数写入 DDB,然后返回该值。

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

于 2015-07-09T07:39:52.377 回答
0

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

于 2015-06-05T23:59:31.407 回答