通过 HTTP2 端到端解决方案绕过 Cloud 运行 32mb 错误

Bypassing Cloud Run 32mb error via HTTP2 end to end solution

我有一个 api 查询 运行 在 post 请求期间对我的一个视图填充我的仪表板页面。我知道响应大小约为 35mb(大于云 运行 设置的 32mb 限制)。我想知道我怎么能绕过这个。

我的配置是通过 hypercorn 服务器设置的,并将我的 django 网络应用程序作为 asgi 应用程序提供服务。我有 2 个最小实例,1gb ram,每个实例 2 个 cpus。我在本地有 运行 这个 docker 容器,无法绕过所需的数据量,并且由于成本原因也不想存储数据。这似乎是最便宜的路线。任何指示或想法都会有所帮助。我知道我可以通过 http2 端到端解决方案绕过这个,但我目前无法这样做。我没有创建任何额外的 hypecorn 配置。任何帮助表示赞赏!

云 运行 HTTP 响应限制为 32 MB,无法增加。

一个建议是压缩响应数据。 Django 具有 Python 的压缩库或仅使用 zlib。

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

Cloud 运行 支持 HTTP/1.1 服务器端流式传输,响应大小不受限制。您需要做的就是使用分块传输编码。

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