Я не могу получить gzip-ответ от Lambda через API-шлюз. Я gzipping мой ответ в Lambda и настройка заголовка «Content-Encoding» в Gateway API.Gzipped response в AWS Lambda -> API Gateway
Я не уверен, в какой части проблемы.
Вот окончательное возвращение из Lambda к API шлюза:
zlib.gzip(myJsonString, function (err, buffer) {
if (err) { return handleError(err, context) }
return context.succeed(buffer.toString('binary'));
});
Я попытался проездом буфер, base64 кодирования его и т.д.
Создание запроса GET из Chrome: Если я удалите заголовок Content-Encoding из шлюза. Я получаю массив binary/base64/buffer как строковый ответ в браузере.
Если я устанавливаю заголовок, запрос GET завершается полностью без ответа, но тестирование в консоли AWS возвращает полезную нагрузку с кавычками вокруг нее.
Я не знаю, что здесь происходит, но если Amazon действительно хочет, чтобы люди использовали эту вещь, мы должны были сжимать наши ответы. Похоже, что это должен быть флажок в API Gateway, а затем я могу просто вернуть строку JSON из Lambda и автоматически ее закрепить.
У меня такая же проблема, и это неутешительно сказать:/Почему не все используют APIG для REST API, жалуются на это? :) –