【问题标题】:How can we use the AWS lambda "event" (API Gateway) as a Readable stream?我们如何将 AWS lambda“事件”(API 网关)用作可读流?
【发布时间】:2017-10-11 17:17:03
【问题描述】:

我正在尝试将 POST 请求中的文件发送到 AWS lambda 并在经过一些处理后得到结果。我想将请求正文用作可读流,如下例所述。

// AWS lambda (using the serverless framework)
module.exports.hello = (event, context, callback) => {
    // pipe the request content to another stream (.pipe())
}

我可以在 Express 中轻松地做同样的事情,但无法使用 AWS lambda 提供的 event 对象。

// Express server
app.post('/endpoint', (req, res) => {
    req.pipe(anotherStream)
})

【问题讨论】:

  • 你为什么要这样做?
  • 在 Lambda 中使用管道没有意义,因为 API Gateway 只会给你event 作为对象。
  • @dashmug 我正在尝试将上传的内容(文件)发送到不同的 API 进行某些处理。

标签: javascript amazon-web-services lambda aws-lambda serverless-framework


【解决方案1】:

AWS Lambda 旨在处理来自 AWS Api Gateway(或任何其他 Lambda 调用)的不同事件(作为对象给出)。你可以做什么:

  1. 将 Web 套接字与 AWS Lambda 结合使用,通过对通过开放套接字发送的数据进行后续 Lambda 调用来处理流
  2. 通过 AWS Api Gateway 公开 AWS S3 操作(例如,在您的情况下为 PUT),并在上传完成后使用 S3 事件触发 Lambda

【讨论】:

    猜你喜欢
    • 2020-06-21
    • 2019-05-02
    • 2019-05-27
    • 1970-01-01
    • 2019-03-18
    • 2021-03-16
    • 2021-04-29
    • 2020-10-03
    • 2019-05-10
    相关资源
    最近更新 更多