【问题标题】:How do I make Google Cloud Functions accept POST requests larger than 10KB?如何让 Google Cloud Functions 接受大于 10KB 的 POST 请求?
【发布时间】:2019-12-20 18:06:46
【问题描述】:

我创建了一个接受 HTTP 触发器的小型 Python 程序并将其上传到 Google Cloud Functions。当我发出正文小于 10KB 的 POST 请求时,它工作正常。

但是,当我超过此值时,该函数无法工作并在其响应中发送错误代码 413(请求实体太大)。有什么我可能会丢失的吗?当我阅读配额文档页面时,它说 Google Cloud Functions 应该允许高达 10MB 的请求,这显然比我发送的要多得多。

谢谢。

编辑:

解析POST数据的Python代码如下:

def html_switcher_test(request):

    request_args = request.args

    if request_args:

        report_html = BeautifulSoup(request.args['data'], 'lxml')

下面提供了显示错误的 Postman 请求屏幕截图:

【问题讨论】:

  • 您对请求实际上是 10K 的信心有多大?对于想要发送 > 10MB 但到目前为止不担心 10K 的人来说,Stackoverflow 似乎充满了问题。
  • 您能否发布导致问题的 Python 代码片段?此外,如果您可以访问调试器,请尝试查找body 变量的大小,正如@Kolban 所说。
  • 为了确保我为请求提供了正确的尺寸,我使用了 Postman。我只是发送一个 HTML 文件作为函数处理的消息内容。为了使用 Postman 执行此操作,我复制了文件的内容(例如大小为 17KB),并将其放入 POST 请求中。
  • 我已将 Python 代码解析器添加到问题中(以及 Postman 屏幕截图)。就像我说的,使用较小的 POST 大小(例如 7KB),一切正常。
  • 我通过创建定义 here 的 hello world(在 python 中)函数重现了这个问题。然后,您需要发送一个 post 请求,如下所示:requests.post('api/hello_http',data={'data':data}),其中 data 变量包含大于 15KB 的文本负载。这将发出错误消息“错误:无法处理请求”。如果将此命令切换为requests.post('api/hello_http', json={'data':data}),一切正常。

标签: python http post google-cloud-functions http-status-code-413


【解决方案1】:

public issue tracker 已针对此问题提交,并带有与其相关的内部错误。将通过那里提供进一步的反馈。

【讨论】:

    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 2017-10-31
    • 1970-01-01
    • 2020-12-23
    • 2017-08-18
    • 2019-01-17
    • 2019-07-11
    相关资源
    最近更新 更多