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" 调用将在后台异步 运行。
现在我在生产中有一个 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
我相信简短的回答是一旦调用 context.succeed 异步调用将不会完成。但是,您可以通过 this blog post.
更详细地了解有关 Lambda 和此用例的更多信息我假设您使用的是 "RequestResponse" 样式调用。是真的吗?
如果您希望立即 return 编辑您的值,您可以随时调用另一个 Lambda 函数(使用 "Event" 调用),并将该函数写入 DDB,然后 return 值。
"event" 调用将在后台异步 运行。