如何在节点中流式传输 AWS Lambda 响应?

How to stream AWS Lambda response in node?

我有一个 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 AWS SDK supports streaming the body of the API responses so API 像获取大型 S3 二进制数据 blob 这样的调用可以流式传输 Javascript 函数。

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

您将得到 Payload 的响应 data

Javascript lambda functions don't support any streaming options except for logging and inbound events, just a callback that returns a chunk of data.
The Java SDK does have a specific handler for streams -com.amazonaws.services.lambda.runtime.RequestStreamHandler.