Как связать приложение Heroku с правильным портом?

#python-3.x #heroku #port #admin

#python-3.x #heroku #порт #администратор

Вопрос:

У меня есть приложение Oython. Это один скрипт с. aiohttp У меня есть requirements.txt и Procfile . Мой этап развертывания успешно завершен, но я не могу понять, как открыть приложение с правильным портом.

Мое приложение прослушивает Heroku PORT env.

Heroku logs возвращает:

 2019-04-19T13:34:44.150477 00:00 app[api]: Release v7 created by user 
doubledare704@gmail.com
2019-04-19T13:34:44.150477 00:00 app[api]: Deploy 1b35a335 by user 
doubledare704@gmail.com
2019-04-19T13:34:45.357983 00:00 heroku[worker.1]: State changed from 
crashed to starting
2019-04-19T13:34:48.854124 00:00 heroku[worker.1]: Starting process with 
command `python index.py`
2019-04-19T13:34:49.473879 00:00 heroku[worker.1]: State changed from 
starting to up
2019-04-19T13:34:51.167617 00:00 app[worker.1]: ======== Running on 
http://0.0.0.0:10303 ========
2019-04-19T13:34:51.167652 00:00 app[worker.1]: (Press CTRL C to quit)
2019-04-19T13:34:54.000000 00:00 app[api]: Build succeeded
2019-04-19T13:35:05.578025 00:00 heroku[router]: at=error code=H14 desc="No 
web processes running" method=GET path="/" host=google-adschecker- 
704.herokuapp.com request_id=8a85c812-a4b9-4d8f-98f6-91a8ff557594 
fwd="93.170.115.160" dyno= connect= service= status=503 bytes= protocol=https
2019-04-19T13:35:05.888452 00:00 heroku[router]: at=error code=H14 desc="No 
web processes running" method=GET path="/favicon.ico" host=google- 
adschecker-704.herokuapp.com request_id=a7be2157-523c-4d00-9a26-a68e7d40e1fd 
fwd="93.170.115.160" dyno= connect= service= status=503 bytes= protocol=https
 

Ошибка H14 говорит о динамо-машинах, но я включил 1 динамо-машину. Как переключить все HTTP-запросы на этот порт? Или как управлять настройками на Heroku?

Вот мой Procfile :

 worker: python index.py
 

Комментарии:

1. Что в вашем Procfile ?

2. @Chris, это просто «рабочий: python index.py «. Index.py содержит код мини-сервера aiohttp с 1 основным обработчиком. Таким образом, он запускает index py, создает http-сервер python с ПОРТОМ Heroku env.

Ответ №1:

Рабочие не могут получать сетевые запросы из Интернета:

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

Измените тип вашего основного процесса с worker на web на Procfile , изменив его следующим образом:

 web: python index.py