首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ExpressJS和AWS Lambda -管道对.zip中断的GET响应

ExpressJS和AWS Lambda -管道对.zip中断的GET响应
EN

Stack Overflow用户
提问于 2017-08-16 05:12:56
回答 1查看 480关注 0票数 0

我在AWS Lambda上有一个函数,它的目的是从REST API中获取一个.zip,提取其内容,然后使用另一个查看器应用程序显示其内容。我使用expressjs进行路由,并使用request模块处理请求。

我的app.js看起来像这样:

代码语言:javascript
复制
app.get('/', function(req, res) {

    var r = request(queryURL); // Where queryURL is a get request to fetch a .zip file

    r.on('response', function(response) {
        response.pipe(fs.createWriteStream('/tmp/testFile.zip'))
            .on('close', function() {
                res.send('Test message');
        })
    })
})

module.exports = app;

问题似乎出在response.pipe(fs.createWriteStream(...));上,我可以获取一个不相关的html并将其通过管道传输到/tmp/testFile.html中,然后用res.sendFile('/tmp/testFile.html')对其进行渲染。我甚至可以从相同的API中获取单个图像。但是关于.zip文件的一些东西破坏了一些东西。

这一切在本地运行时都有效,但当我将其上传到lambda时,它就会中断,在浏览器上呈现{"message": "Internal server error"}。我不知道如何访问日志-我使用ClaudiaJS上传我的函数。

下面是我的处理程序函数,以防可能相关:

代码语言:javascript
复制
'use strict'
const awsServerlessExpress = require('aws-serverless-express')
const app = require('./app')
const server = awsServerlessExpress.createServer(app)
exports.handler = (event, context) => awsServerlessExpress.proxy(server, event, context)

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-08-18 03:11:58

最后弄清楚了如何访问cloudwatch日志,并意识到Lambda超时了。我将超时时间从3秒改为30秒,从那以后它一直工作得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45701630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档