Странное поведение в приложении Flask с Docker на AWS, выполняющим POST - PullRequest
0 голосов
/ 29 января 2019

У меня на AWS работает приложение Flask с докером и uwsgi.У меня есть некоторые конечные точки, и когда я выполняю POST для одной из них, используя Postman или Curl, я вижу в журналах код состояния ответа 412, но на Postman или Curl он показывает 502.

Я пытался запуститьприложение Flask локально без докера, но с использованием uwsgi, и оно работает, как и ожидалось.

Мне нужен ответ 412, чтобы знать, как обрабатывать этот код состояния.

1 Ответ

0 голосов
/ 30 января 2019

Если приложение фляги работает должным образом на вашем локальном компьютере, это может иметь какое-то отношение к настройке маршрутизации порта для вашего контейнера.

В дополнение к порту, ваше приложение фляги получает запросы наесть контейнер Docker, внутри которого он находится, также имеет свои собственные порты.Первый - это внешний набор портов, которые должны быть доступны для приема запросов, и есть еще один набор внутренних портов, которые могут быть связаны с внешними портами и использоваться вашим приложением.

Подробное объяснение доступно в этот ответ здесь , но TLDR:

Запуск вашего контейнера с docker run -it --expose 8008 -p 8008:8008 myContainer позволит использовать внешний порт с --expose EXTERNALPORT и свяжет внутренний контейнерный порт с внешним контейнерным портом с помощью -p INTERNALPORT:EXTERNALPORT.

Наконец, при запуске службы фляги вам необходимо убедиться, что ее порт совпадает с внутренним портом контейнера.Пример использования того же порта, который мы указали ранее:

flask run --host=0.0.0.0 --port=8008

...