#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