python - Google App Engine 应用程序 - klein micro web 框架出现 502 bad gateway 错误
问题描述
我基于scrapy开发了一个python webcrawler应用,并打包成klein应用(klein框架)
当我在本地测试它时,一切都按预期工作,但是当我将它部署到谷歌应用程序引擎时,我得到一个“502 bad gateway”。我发现了 502 错误的其他提及,但与我正在使用的 klein 框架无关。所以我只是想知道应用引擎是否可能与它不兼容。
这是我的文件夹结构
app
--app.yaml
--main.py
--requirements.txt
app.yaml 的内容
runtime: python37
instance_class: F2
handlers:
- url: /.*
secure: always
redirect_http_response_code: 301
script: auto
main.py 的内容
from klein import route, run
@route("/")
def landing_page(request):
return "HELLO"
if __name__== "__main__":
run(host='127.0.0.1', port=8080)
解决方案
App Engine 要求您的main.py
文件声明一个app
对应于WSGI Application的变量。
由于 Klein 是一个异步 Web 框架,它与 WSGI(同步)不兼容。
您最好的选择是使用Cloud Run之类的服务,它允许您定义自己的运行时并使用与 Klein 兼容的异步 HTTP 服务器。