代码之家  ›  专栏  ›  技术社区  ›  Sultan Khan

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

  •  0
  • Sultan Khan  · 技术社区  · 3 年前

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

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

    0 回复  |  直到 3 年前
        1
  •  0
  •   John Hanley    3 年前

    云运行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
    
        2
  •  0
  •   wlhee    3 年前

    Cloud Run支持HTTP/1.1服务器端流媒体,该流媒体具有无限的响应大小。你需要做的就是使用分块传输编码。

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