Приложение Google App Engine - ошибка 502 неверного шлюза с помощью микро веб-фреймворка klein - PullRequest
1 голос
/ 01 августа 2020

Я разработал приложение python webcrawler на основе scrapy и упаковал его как приложение klein ( klein framework )

Когда я тестирую его локально, все работает, как ожидалось, однако когда Я развертываю его в движке приложений Google и получаю «502 плохой шлюз». Я нашел другие упоминания об ошибке 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)

1 Ответ

1 голос
/ 05 августа 2020

App Engine требует, чтобы ваш файл main.py объявлял переменную app, которая соответствует приложению WSGI .

Поскольку Klein является асинхронной веб-структурой, это несовместим с WSGI (который является синхронным).

Лучшим вариантом было бы использовать такую ​​службу, как Cloud Run , которая позволит вам определить свою собственную среду выполнения и использовать асинхронный HTTP-сервер, совместимый с Klein.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...