Я впервые развертываю приложение Python в GAE, которое использует Flask-restful в качестве сервера REST, и я не могу понять, как правильно настроить развертывание.
Я пытаюсь использовать пример приложения с минимальным отдыхом в колбе minimal.py
from flask import Flask
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
class HelloWorld(Resource):
def get(self):
return {'hello': 'world'}
api.add_resource(HelloWorld, '/')
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
И я настроил файл развертывания app.yaml следующим образом, где сетевой раздел пытается предоставить доступ к порту 5000 по умолчанию для flask-restful:
runtime: python
env: flex
entrypoint: python minimal.py
runtime_config:
python_version: 3
network:
instance_tag: instance-1
name: default
forwarded_ports:
- 5000
Имя По умолчанию - единственная сеть, настроенная в моем VPC.
Инструкция по развертыванию была следующей, чтобы удалить предыдущие испытания, которые я сделал:
gcloud app deploy --promote --stop-previous-version
Итак, когда я пытаюсь использовать curl для публикации, я получаю ошибку 502, которую я также вижу на своем сервере.
Мне где-то не хватает шага ... возможно, в сети VPC или в конфигурации app.yaml, но сейчас я потерялся ...
Любая помощь будет очень признательна :)





Попробуйте обновить вашу конфигурацию yaml.
runtime: python
env: flex
entrypoint: gunicorn -b :$PORT minimal:app
runtime_config:
python_version: 3
manual_scaling:
instances: 1
resources:
cpu: 1
memory_gb: 0.5
disk_size_gb: 10
Ссылка: https://cloud.google.com/appengine/docs/f flexible/python/configuring-your-app-with-app-yaml
Спасибо, сработало. Хотя мне пришлось выяснить, что Gunicorn нужно ежегодно добавлять в файл
requirements.txt, чтобы он работал. Обычногоpip freeze > requirements.txt, конечно, не хватит.