AutoML 立即生成容器 returns 503 (GCP)。如何排除故障?

AutoML generated container returns 503 immediately (GCP). How to troubleshoot?

我是容器之类的新手,所以提前致歉。

我在 GCP 上训练了一个 Vision 模型并将其导出为容器(我遵循了这个 here)。但是,当我将其托管在云 运行 上时,出现错误 503。

The request failed because either the HTTP response was malformed or connection to the instance had an error.

我在这里看到很多关于高 CPU 使用率或超时的问题,但这种情况会在请求发送后立即发生。日志表明容器(和 TF)启动正常,仅此而已。

有没有办法从容器中获取更详细的输出?像 PHP 如何有 500 秒的 display_errors

输入似乎不会改变结果,但这是我的 body:

{"instances":[{"image_bytes":{"b64":"<insert base64>"},"key":"5e6668d92b4c8.jpeg"}]}

所以我发现最好的去处是here阅读更详细的日志。不幸的是,我没有找到很多有用的信息,但事实证明,在我的 Cloud 运行 修订版中启用 HTTP2.0 导致它 return 503 而没有其他警告...

我已经根据 Cloud Run HTTP2 Official Documentation.

成功部署了一个启用了 HTTP2 的容器

HTTP/2 在 Cloud Run is in Preview Stage 中的支持并且它工作正常。

检查 Cloud 运行 Stackdriver 登录文件 /varlog/system 查看是否存在容器退出原因。

这些 503 错误可能是由代码中的服务器套接字超时以及应用程序崩溃引起的。

因为你有 AutoML 容器,我假设语言是 Python,网络服务器是 Gunicorn,根据 Cloud Run Official Documentation。 Gunicorn 的默认超时为 30 秒,如果请求超过该超时,它可能会失败并显示错误 [CRITICAL] WORKER TIMEOUT。您可以将 --timeout 0 添加到 gunicorn 调用以完全禁用 worker 超时。

因此,我建议您在禁用 HTTP2 之前先查看 Stackdriver 日志,看看是否遇到任何其他错误,因为它正在按预期工作。