Обход ошибки Cloud Run 32mb с помощью решения HTTP2 из конца в конец

У меня есть api запрос, который выполняется во время запроса post на одном из моих представлений для заполнения страницы приборной панели. Я знаю, что размер ответа составляет ~35мб (больше, чем 32мб, установленные облачным прогоном). Я хотел бы узнать, как я могу обойти это.

Моя конфигурация установлена через сервер hypercorn и обслуживает мое веб-приложение django как приложение asgi. У меня есть 2 минимальных экземпляра, 1gb ram, 2 cpus на экземпляр. Я запустил этот контейнер docker локально и не могу обойти требуемый объем данных, а также не хочу хранить данные из-за затрат. Похоже, это самый дешевый путь. Любые указания или идеи были бы полезны. Я понимаю, что могу обойти это с помощью решения http2 end to end, но в настоящее время я не могу этого сделать. Я не создавал никаких дополнительных конфигураций hypecorn. Любая помощь приветствуется!

Предел HTTP-ответа Cloud Run составляет 32 МБ и не может быть увеличен.

Одним из предложений является сжатие данных ответа. В Django есть библиотеки сжатия для Python или просто используйте zlib.

import gzip
data = b"Lots of content to compress"
cdata = gzip.compress(s_in)
# return compressed data in response

Cloud Run поддерживает потоковую передачу HTTP/1.1 на стороне сервера, которая имеет неограниченный размер ответа. Все, что вам нужно сделать, это использовать кодировку передачи данных chunked.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Transfer-Encoding

Вернуться на верх