Я новичок в GCP, мы выбрали разумную структуру, чтобы все работало более гладко. Sanic поддерживает python 3.5+, поэтому мы будем использовать гибкую среду для appengine.
Сейчас пытаюсь развернуть "Sanic" Привет, мир (Начать) приложение в appengine. и воткнул конфиг. проблема в
# This looks like a Python app. If so, please enter the command to run
the app in production (enter nothing if it's not a python app): :
Я просмотрел другие примеры Google Cloud Platform (образцы документов Python), которые доступны на GitHub, и все они использовали Gunicorn но у sanic есть встроенный http-сервер.
Может ли кто-нибудь предложить модель app.yaml для sanic на appengine. моя текущая установка выглядит следующим образом
1. app.yaml
runtime: python
env: flex
threadsafe: true
runtime_config:
python_version: 3
handlers:
- url: .* # This regex directs all routes to main.app
script: main.app
2. main.py
#import logging
from sanic import Sanic
from sanic.response import json
app = Sanic()
@app.route("/")
async def test(request):
return json({"hello": "world"})
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8000)
3. requirements.txt
httptools
sanic
ujson
uvloop
ОБНОВИТЬ.
добавлено entrypoint: python main.py
к app.yaml Исправлена моя проблема с развертыванием, но ошибка appengine вылетела.
Ошибка: ошибка сервера
Сервер обнаружил временную ошибку и не смог выполнить ваш запрос. Повторите попытку через 30 секунд.
Заранее спасибо. и если вы не можете решить мою проблему, не голосуйте против.
Если быть точным, вот и appengine app.yaml модель точки входа:
entrypoint: gunicorn <main:app> --bind 0.0.0.0:8080 --worker-class sanic.worker.GunicornWorker
Вам нужно обязательно установить пакеты пипсов. В настоящее время Appengine поддерживает версию 19.7.1.
Просто измените главное так:
if __name__ == '__main__':
app.run(host='0.0.0.0', port=os.environ.get('PORT',8080))
и точка входа app.yaml в:
entrypoint: python main.py
Он должен работать.
У меня работает. Я просто меняю то, что написал выше, и развертываю новую версию в GAE-Flex.
Я не уверен, что это поможет.
У меня такая же проблема. Решено:
entrypoint: gunicorn -b :$PORT main:app
к моему app.yaml
файл."gunicorn==19.7.1"
к моему requirements.txt
файл.