【问题标题】:How to stream AWS Lambda response in node?如何在节点中流式传输 AWS Lambda 响应?
【发布时间】:2017-01-15 19:23:37
【问题描述】:

我有一个 AWS Lambda 函数,我需要从我的节点应用程序调用它并将结果流式传输回客户端。我查看了the docs,但看不到方法。我想做这样的事情:

lambda.invoke(params).then(data => data.pipe(res))

甚至

lambda.invoke(params, (err, data) => {
  // data should be a pipeable stream instead of buffered
  data.pipe(res)
})

【问题讨论】:

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


    【解决方案1】:

    Javascript AWS SDK supports streaming the body of the API responses 这样 API 调用(如获取大量 S3 二进制数据)可以流式传输 Javascript 函数。

    lambda.invoke(lambdaDef)
      .createReadStream()
      .on('data', function(data) {
        console.log("Got data:", data.toString())
      })
    

    您将收到回复的Payloaddata

    Javascript lambda functions don't support any streaming options except for logging and inbound events,只是一个返回数据块的回调。
    Java SDK 确实有a specific handler for streams -com.amazonaws.services.lambda.runtime.RequestStreamHandler

    【讨论】:

    • 有谁知道 Node.js lambda 函数不支持流式传输是否仍然是真的?
    • 我有一段时间没有使用 lambda,更新链接时查看了 docco,但它看起来和以前一样。也许您可以注入从 lambda 返回的AWS.Request?它有一些与流相关的选项。
    猜你喜欢
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 2016-01-21
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多