我似乎无法通过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
如果你想出来,请告诉我!