【问题标题】:405 error for POST on Docker Container in Cloud RunCloud Run 中 Docker 容器上的 POST 405 错误
【发布时间】:2022-08-16 21:06:03
【问题描述】:

我测试了我在本地构建的容器。它接受带有文件的 POST 请求并返回另一个已处理的文件。

我将容器上传到 GCP 上的 Artifact Registry。我一直在尝试从我的计算机发出一些 POST 请求来测试该服务。这是下面的 CURL,与各种客户端库相同的问题。当我使用本地端口而不是云运行 URL 时,相同的请求有效。

curl --globoff https://SERVICE_NAME.a.run.app  
-X POST  
-H \"content-type: application/json\" 
-H \"Authorization: bearer $(gcloud auth print-identity-token)\"
-d \'{\"filename\": RANDOM_FILE_NAME.pdf}\' 

我收到了我粘贴在下面的 405。

<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\"/>
<title>Error 405 HTTP method POST is not supported by this URL</title>
</head>
<body><h2>HTTP ERROR 405</h2>
<p>Problem accessing /. Reason:
<pre>    HTTP method POST is not supported by this URL</pre></p>
</body>
</html>

我究竟做错了什么 ?我在 Cloud Run 上没有看到任何需要更新的其他选项,而且我很清楚我的容器接受 POST。

  • 您部署的代码是什么?此外,您是否尝试使用尾随 /?某些框架(如 spring boot)无法识别带有或不带有尾随 / 的相同 URL
  • 它是一个机器学习管道,它以 PDF 作为输入并在处理后输出解析的 JSON。它通过 FastApi 进行通信。至于尾随 /,我尝试无济于事 - 405 表示 URL 已被识别,但服务只是拒绝响应

标签: google-cloud-platform google-cloud-run


【解决方案1】:

当 Web 服务器的配置方式不允许您对特定 URL 执行特定操作时,会出现“HTTP ERROR 405”错误。

是一个HTTP响应状态码,表示以PDF为输入,处理后输出解析后的JSON的请求方法为服务端已知,但目标资源不支持。

此外,您需要确保 PubSub 使用的服务帐户具有适当的 IAM 权限,以便它确实可以触发您的应用程序,该应用程序涉及根据您的要求发布请求。
我还建议您查看此tutorial,它逐步概述了如何实现这一目标。

【讨论】:

    猜你喜欢
    • 2021-03-13
    • 2020-04-18
    • 2021-01-02
    • 2019-12-04
    • 2020-08-27
    • 2011-12-10
    • 2019-10-14
    • 1970-01-01
    • 2019-01-24
    相关资源
    最近更新 更多