现在我在生产中有一个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
答案 0 :(得分:1)
我假设你正在使用" RequestResponse"风格调用。这是真的吗?
如果你想立即返回你的值,你总是可以调用另一个Lambda函数(使用" Event" invoke),并让该函数写入DDB,然后返回值。
"事件" invoke将在后台异步运行。
答案 1 :(得分:0)
我认为简短的回答是,一旦调用了context.succeed,异步调用就不会完成。但是,您可以通过this blog post.
更详细地了解有关Lambda和此用例的更多信息