首页 > 解决方案 > 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)

标签: pythongoogle-app-enginegoogle-cloud-platformklein-mvc

解决方案


App Engine 要求您的main.py文件声明一个app对应于WSGI Application的变量。

由于 Klein 是一个异步 Web 框架,它与 WSGI(同步)不兼容。

您最好的选择是使用Cloud Run之类的服务,它允许您定义自己的运行时并使用与 Klein 兼容的异步 HTTP 服务器。


推荐阅读