我有一个 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/