我有一个正在运行的 Flask ODATA API 服务,我可以成功地将数据导入到 Excel 或其他可以导入 ODATA Feed 的平台。
但是,我目前正在将上述 API 迁移到 Google Cloud Functions,但它们对 HTTP/1 请求和响应的大小限制为 32mb。
我一直在阅读不同库的在线文档,如 json-stream 和 Flask Streaming Contents,但是我仍然无法理解如何将特定块分区或附加到响应中,并使程序(excel、powerbi 等)理解如何预计 X 数量的块
这就是我目前的设置方式:
results = df.to_dict('records')
results_dict = {}
results_dict["@odata.context"] = f"{DOMAIN}odataservice/{category}/$metadata#{object_method}"
results_dict["value"] = results
response = jsonify(results_dict)
response.headers["Content-Type"] = "application/json; odata.metadata=minimal"
response.headers["OData-Version"] = "4.0"
response.headers["Vary"] = "Accept-Encoding"
response.headers["Pragma"] = "no-cache"
response.headers["Expires"] = "-1"
response.headers["Cache-Control"] = "no-cache"
return response
如有任何见解、解释或帮助,我们将不胜感激!
提前致谢,
基于本文档中的 Cloud Functions 资源限制:
配额 | 限制(第一代) | 极限(第二代) |
---|---|---|
最大未压缩 HTTP 请求大小 | 10MB | 32MB |
最大未压缩 HTTP 响应大小 | 10MB | 10MB 用于流式响应。 32MB 用于非流式响应。 |
区域范围是每个项目的,每个项目都有自己的限制。此外,没有增加配额的选项。
我建议检查以下内容以克服限制:
请注意,Cloud Functions 第二代是基于 Cloud Run 和 Eventarc 构建的,因此上述步骤应该类似地工作。