node.js – AWS Lambda中的Gzipped响应 – > API网关

我似乎无法通过API网关从Lambda获得一个gzipped响应.

我在Lambda中解压缩我的响应并在API网关中设置“Content-Encoding”标头.

我不确定哪个部分是问题所在.

这是从Lambda到API Gateway的最终回报:

zlib.gzip(myJsonString, function (err, buffer) {
    if ( err ) { return handleError(err, context) }

    return context.succeed(buffer.toString('binary'));
});

我试过传递缓冲区,base64编码等等.

从Chrome发出GET请求:
如果我从网关中删除Content-Encoding标头,我会在浏览器中将binary / base64 / buffer数组作为字符串响应.

如果我设置了标头,则GET请求完全失败而没有响应,但在AWS控制台中进行测试会返回带有引号的有效负载.

我不知道这里发生了什么,但如果亚马逊真的希望人们使用这个东西,我们需要能够压缩我们的回复.看起来它应该只是API网关中的一个复选框,然后我可以简单地从Lambda返回一个JSON字符串并自动压缩它.

最佳答案 至于2016年11月17日 –
Binary Data Now Supported by API Gateway

如果你想出来,请告诉我!

点赞