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



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

我的配置是通过hypercorn服务器设置的,并将我的django web应用程序作为asgi应用程序提供。我至少有2个实例,1gb内存,每个实例2 cpu。我在本地运行了这个docker容器,无法绕过所需的数据量,而且由于成本原因,我不想存储数据。这似乎是最便宜的路线。任何建议或想法都会有所帮助。我知道我可以通过http2端到端解决方案绕过这一点,但我目前无法做到。我还没有创建任何额外的hypecorn配置。感谢您的帮助!

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

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

云运行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

相关内容

  • 没有找到相关文章

最新更新