Проблема развертывания Google App Engine - основное приложение не найдено

Я пытаюсь развернуть свое приложение с помощью Google App Engine. Я отредактировал app.yaml, чтобы отразить гибкую среду, а также предоставил всю информацию о приложении. Ниже приведен файл app.yaml.

runtime: python
env: flex
entrypoint: gunicorn -b :$PORT main:app
runtime_config:
  python_version: 3

После развертывания я получаю следующую ошибку

[2018-08-24 06:57:14 +0000] [1] [INFO] Starting gunicorn 19.7.1
[2018-08-24 06:57:14 +0000] [1] [INFO] Listening at: http://0.0.0.0:8080 (1)
[2018-08-24 06:57:14 +0000] [1] [INFO] Using worker: sync
[2018-08-24 06:57:14 +0000] [7] [INFO] Booting worker with pid: 7
App Deployed
Failed to find application: 'main'
[2018-08-24 06:57:14 +0000] [7] [INFO] Worker exiting (pid: 7)
[2018-08-24 06:57:14 +0000] [1] [INFO] Shutting down: Master
[2018-08-24 06:57:14 +0000] [1] [INFO] Reason: App failed to load.

Обратите внимание, что App Deployed - это строка в моем заявлении на печать. Это выполняется. Но развертывание становится неудачным

заранее спасибо

4 ответа

Решение

В вашем app.yamlначинаешь гантикорн с gunicorn -b :$PORT main:app, Это говорит ему искать объект app в файле main.py

Ошибка, которую вы получаете, происходит от Gunicorn и возникает, когда у вас есть main.py файл, но он не имеет app объект в этом.

Вы, вероятно, хотите настроить приложение Flask следующим образом:

from flask import Flask

app = Flask(__name__)

См. Полный пример приложения здесь: https://cloud.google.com/appengine/docs/flexible/python/quickstart

У меня была такая же проблема.

Failed to find application: 'main'

Причиной в моем случае было то, что у меня был также каталог main в корневой директории проекта.

drwxr-xr-x   2 user  staff    64 Nov 30 10:12 main
-rw-r--r--   1 user  staff  1178 Nov 29 20:58 main.py

Я думаю, что Gunicorn запутался. Решение (работало для меня): переименовать main каталог.

PS Просто не переименовывайте его в code каталог. Это вызовет еще одну проблему с отладкой в ​​PyCharm.:)

Моя структура папок выглядит так: main.py не в root каталог, как я могу указать это в app.yaml файл.

      /app
 |__main.py
app.yaml

Поскольку я новичок в GCP, я не смог решить эту проблему быстро. Это моя проблема в том, что я не использовал Flask для достижения цели, и как только я использовал Flask, он работает.

Спасибо

Другие вопросы по тегам