Flask использует фабричный шаблон для создания объекта приложения:
# myapp/__init__.py
def create_app():
app = Flask(__name__)
app.debug = True
return app
В App Engine gunicorn
используется внутри app.yaml
для запуска приложения
# ../myapp/app.yaml
runtime: python37
entrypoint: gunicorn -b :$PORT myapp:create_app()
С этой настройкой я получаю Server Error
при просмотре приложения. В Stackdriver я получаю следующую ошибку:
[start] 2020/02/25 16:19:45.268388 Start program failed: failed to detect app after start: ForAppStart(): [aborted, context canceled. subject:"app/valid" Timeout:30m0s, attempts:0 aborted, context canceled. subject:"app/invalid" Timeout:30m0s, attempts:0]
А также
/bin/sh: 1: Syntax error: "(" unexpected
Вот структура моего проекта:
project_root/
app.yaml
myapp/
__init__.py # << create_app() inside here