@FonVald
Backend Developer

Как в Zappa разбить flask app.py на модули?

Всем привет!

Есть app/__init__.py

from flask import Flask

app = Flask(__name__)


class HelloWorldService:

    def greeting(self):
        print('greeting app')
        return 'Hello World'


@app.route('/')
def index():
    hello = HelloWorldService()
    return hello.greeting(), 200


# include this for local dev
if __name__ == '__main__':
    app.run()


Lambda успешно работает все ок, но если я хочу к примеру вынести роутинг в app/routes.py
from app import app

@app.route('/')
def index():
    hello = HelloWorldService()
    return hello.greeting(), 200


Или вынести HelloWorldService в app/services.py а в __init__ сделать импорт from app.services import HelloWorldService

То получаю ошибку во время выполения 'zappa update':
Error: Warning! Status check on the deployed lambda failed. A GET request to '/' yielded a 502 response code.

Подскажите пожалуйста в чем проблема? Я так понимаю при импортах zappa теряет роутинг.
Локальный запуск 'flask run' во всех случаях нестрадает и все ок.
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
@FonVald Автор вопроса
Backend Developer
Репозиторий в пример https://github.com/tonyin/flask-zappa-base.
По нему смог правильно настроить структуру проекта, чтобы flask с blueprint'ами успешно работал с zappa.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
inoise
@inoise Куратор тега Amazon Web Services
Solution Architect, AWS Certified, Serverless
Выкинуть Flask, выкинуть Zappa, взять Serverless Framework и отказаться от роутинга внутри лямбды. Приучиться к AWS API Gateway
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы