Мне удалось разместить мое приложение Flask на GCP 'App Engine. Точка входа по умолчанию просто запускает мой модуль app_folder/flask_app.py
.
В моем приложении flask определены некоторые конечные точки, например /slack_endpoint
, и я не могу получить правильный ответ при их нажатии. Настройка работает при локальном запуске.
Вот мой app.yml
для GCP App Engine:
runtime: python
env: flex
runtime_config:
python_version: 3
entrypoint: python -m app_folder.flask_app
service: default
handlers:
- url: /slack_endpoint
script: app_folder.flask_app
Я не могу найти журналы ошибок, потому что ничего не происходит. Я разрабатываю слабое приложение, и когда я отправляю запрос на свою конечную точку из слабой стороны, все, что я получаю, - это небольшой символ ошибки в пользовательском интерфейсе, поэтому я спрашиваю больше об общей настройке приложения и конечных точек.
Мои определения конечной точки flask_app.py:
@app.route('/slack_endpoint', methods=["POST"])
def accept_slack_request():
request_dict = json.loads(request.form.to_dict()["payload"])
slack_client = slack.Slack()
response_code = slack_client.parse_slack_request(request_dict)
return jsonify({"message": response_code}), 200
Замечу, что конечная точка /
, предназначенная для простого отображения README.md, прекрасно работает как локально, так и при размещении в App Engine.
@app.route("/", methods=["GET"])
def index():
"""Present the Documentation"""
_path = os.path.normpath(os.path.dirname(__file__))
with open(f'{_path}/README.md', 'r') as readme:
content = readme.read()
return markdown.markdown(content)
Есть идеи, что я делаю не так?
РЕДАКТИРОВАТЬ: я переключил время выполнения моего экземпляра приложения, чтобы использовать стандартную среду Python3 .7:
service: default
runtime: python37
instance_class: F2
entrypoint: python -m app_folder.flask_app
handlers:
- url: /slack_endpoint
script: auto
С этими настройками все конечные точки URL обрабатываются соответствующим образом приложением, которое запускается оператором entrypoint
. Это решило то, что я считал успешным развертыванием. После этого нужно было получить разрешения на доступ к отчетам журналов и устранению неполадок.