App Engine弹性环境部署Flask服务遇/readiness_check 404错误求助
解决App Engine弹性环境Flask服务/readiness_check 404错误
问题原因
你的Flask应用未定义/readiness_check路径的路由,App Engine健康检查请求该路径时返回404,导致部署失败。
解决方案
1. 在Flask应用中添加readiness_check路由
修改main.py,增加对应路由以响应健康检查请求:
from flask import Flask app = Flask(__name__) @app.route("/") def return_hello(): return "Hello!" # 新增readiness check路由,返回200状态码表示服务就绪 @app.route("/readiness_check") def readiness_check(): return "OK", 200
2. 优化Dockerfile端口配置(推荐)
App Engine弹性环境会通过PORT环境变量指定服务端口,建议使用该变量替代固定8080,避免端口不匹配问题:
# 替换原CMD命令为以下两种方式之一 # 方式1:使用shell解析环境变量 CMD exec gunicorn --bind :$PORT --workers 1 --threads 8 main:app --timeout 300 # 方式2:通过shell形式执行(需确保容器支持shell解析) CMD ["sh", "-c", "gunicorn main:app -b :$PORT --timeout 300"]
3. 确认app.yaml配置有效性
当前app.yaml中readiness_check的路径配置与新增路由一致,app_start_timeout_sec设置为1800秒已满足启动需求,无需额外修改。
内容的提问来源于stack exchange,提问作者Peter Malik
相关产品推荐
相关产品推荐

