【问题标题】:AWS Lambda: Can I return context and have a task still running?AWS Lambda:我可以返回上下文并让任务仍在运行吗?
【发布时间】:2015-08-19 07:28:45
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2022-11-18
        • 2016-02-23
        • 2020-08-05
        • 2021-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多