javascript - 如何在 Node 中流式传输 AWS Lambda 响应?

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

我有一个 AWS Lambda 函数,我需要从我的 Node 应用程序调用它并将结果流式传输回客户端。我看过 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因此,API 调用(例如获取大型 S3 二进制数据 block )可以流式传输 Javascript 函数。

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

您将获得作为数据的响应的Payload

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

关于javascript - 如何在 Node 中流式传输 AWS Lambda 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39381139/

相关文章:

mysql - 从另一个表中检索数据并将其插入到新表中

javascript - 配置 Webpack 输出包

javascript - Kendo无法获取json文件并解析

javascript - 获取缺陷而不是跨用户、迭代和项目获取

javascript - 如何在 L.geoJSON pointToLayer 中实例化 Marker

javascript - 如何在 TypeORM 中左连接 JSON 函数

amazon-web-services - 当我可以在 S3 管理控制台中看到该文件时,为什么 AWS S3 返回 404?

json - 使用 AWS Rekognition 检测 PPE 并将结果存储在 DynamoDB 中

java - 如何利用 AWS 每分钟执行一次方法(多个进程/实例)

javascript - 您是否可以在 HTML 文本区域/文本字段中有一个脚本并执行它?