据我所知,截至2016年11月,API Gateway现在支持二进制媒体类型 . 是否可以从lambda代理返回压缩的HTTP?
我有一个快速js应用程序需要返回压缩输出(从数据库查询),否则响应体超过lambda响应体限制 .
谢谢!
您可以将base64编码的String中的压缩数据从Lambda返回到API网关 .
然后,您可以使用二进制媒体类型功能将base64编码的String转换回二进制数据,然后再返回到客户端 .
如果要强制API网关返回二进制数据而不是遵循接受标头,可以通过CLI将集成响应中的contentHandling属性设置为CONVENT_TO_BINARY .
aws apigateway update-integration-response \ --rest-api-id <api-id> \ --resource-id <resource-id> \ --http-method GET \ --status-code 200 \ --patch-operations '[{"op" : "replace", "path" : "/contentHandling", "value" : "CONVERT_TO_BINARY"}]'
See example of binary support with Lambda.
1 回答
您可以将base64编码的String中的压缩数据从Lambda返回到API网关 .
然后,您可以使用二进制媒体类型功能将base64编码的String转换回二进制数据,然后再返回到客户端 .
如果要强制API网关返回二进制数据而不是遵循接受标头,可以通过CLI将集成响应中的contentHandling属性设置为CONVENT_TO_BINARY .
See example of binary support with Lambda.