首页 > 解决方案 > 如何防止 GAE 抛出 ERROR 502?

问题描述

就我而言,这是错误的原因,因为我的应用程序需要很长时间才能发送响应。我只想知道我应该将哪些参数添加到我的app.yaml文件中,以便deadline从 30 秒更改为 120 秒。
我的app.yaml代码

runtime: python
env: flex
entrypoint: gunicorn -b :$PORT app:app

runtime_config:
    python_version: 3

resources:
    cpu: 4
    memory_gb: 8

标签: google-app-engineyamlapp.yaml

解决方案


根据官方文档,App Engine Standard 针对具有短暂请求(几百毫秒)的应用程序进行了优化。

但是,请求可能需要长达 60 秒的时间才能响应。在此时间段之后,请求处理程序将被中断。

如何处理请求

一个不能很好地与 App Engine 的基础架构一起扩展的应用程序。

我建议使用Google Stackdriver Trace来查找您的应用程序请求执行时间大于 60 秒的原因。

编辑

提供的答案是针对 Google App Engine Standard。我注意到您正在使用 Google App Engine Flex。60 秒的限制不适用于 Google App Engine Flex,因为

应用程序实例在 Compute Engine 虚拟机 (VM) 上的 Docker 容器中运行。

App Engine Flex 推荐用于:

接收一致的流量、经常出现流量波动或满足逐步扩展和缩减参数的应用程序。

选择 App Engine 环境

30 秒错误超时可能是 gunicorn 服务器超时。

更改您的 app.yaml,添加-t 120(超时 120 秒):

      runtime: python
      env: flex 
      entrypoint: gunicorn -t 120 -b :$PORT main:app

在这里您可以找到相关的 SO 问题链接


推荐阅读