3

Я не могу получить 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 и автоматически ее закрепить.

+0

У меня такая же проблема, и это неутешительно сказать:/Почему не все используют APIG для REST API, жалуются на это? :) –

ответ

1

Передача двоичного выхода от Lambda до API Gateway не поддерживается.

Подобный вопрос уже был answered here.

2

Что касается 17 ноября 2016 года - Binary Data Now Supported by API Gateway

Позвольте мне знать, если вы поняли, что из!

+0

Любые новости по этому вопросу? –

+0

@PedroBaptistaAfonso ознакомьтесь с этим примером использования gzip https://github.com/awslabs/aws-serverless-express/pull/51 –

Смежные вопросы