5

我似乎无法通过 API 网关从 Lambda 获得压缩响应。我在 Lambda 中压缩我的响应并在 API Gateway 中设置“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 Gateway 中的一个复选框,然后我可以简单地从 Lambda 返回一个 JSON 字符串并自动压缩它。

4

1 回答 1

2

至于 2016 年 11 月 17 日 - API Gateway 现在支持二进制数据

让我知道你是否明白了!

于 2016-12-13T11:27:21.460 回答