Отправка чат-бота Telegram на сервер Heroku

При выключении вашего компьютера бот станет недоступен. Хорошо бы переселить его на какой-то компьютер, который никогда не спит.

Можно приобрести мини-компьютер, например популярный Raspberry PI, воткнуть его в розетку, подключить к домашнему интернету и поселить бота внутри него.

Но если у вас дома отключат электричество или интернет, то возникнет проблема.

Есть ещё один вариант — в телефон на базе Android можно установить Termux, Linux-терминал для Android (ведь Android — это одна из ветвей Линукса).

С помощью этого терминала можно запускать питоновские файлы на смартфоне, как на сервере. После этого можно перенести бота на мобильник, запустить его через терминал — и готово, бот крутится у вас в кармане! Мобильный телефон всегда включён, мобильный интернет доступен.

Но и тут есть свои неудобства: нужно поддерживать заряд батареи и положительный баланс на счёте.

Всё это выглядит не очень надёжно: такие решения, конечно, будут работать, но они годятся только для игрушечных проектов. Чтобы обеспечить уверенную работу приложения, нужен постоянно подключённый к сети полноценный масштабируемый компьютер.

Такие компьютеры называют «удалёнными серверами», а размещение проектов на удалённых серверах называют «услугой хостинга» или просто «хостингом». Обычно за услуги хостинга берут деньги, но есть и бесплатные варианты.

Задание: разместите бота на сервисе Heroku

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

  1. Зарегистрируйтесь на Heroku.
  2. После успешной регистрации и подтверждения почты вы окажетесь на странице https://dashboard.heroku.com/apps.
  3. Создайте приложение (кнопка New → Create new app).

Вас попросят придумать название для приложения и выбрать регион. Укажите географически близкий к вам регион: даже в интернете физические расстояния имеют значение.

  1. Теперь привяжите аккаунт на GitHub: зайдите в раздел Deploy, выберите GitHub в разделе Development method и нажмите на кнопку Connect to GitHub.

После подтверждения действия (вас попросят ввести пароль) укажите название репозитория, в котором находится код:

Осталось только нажать на кнопку Deploy Branch: Heroku установит все зависимости и опубликует приложение на сервере.

Имейте в виду: чтобы всё завелось, нужно поместить в репозиторий два служебных файла:

  • requirements.txt со списком зависимостей, чтобы Heroku знал, какие пакеты ему нужно установить;
  • файл Procfile, в котором должна быть указана «точка входа» — файл, который должен быть запущен.

Здесь доступен пример размещения проекта на Heroku, прочтите его, и картина прояснится.

Подробные инструкции есть в документации, прочтите и их.

Теперь нужно передать на сервер переменные окружения. Откройте вкладку Settings и найдите пункт Config Vars. Нажмите Reveal Config Vars и добавьте поочерёдно ключ и значение для каждой переменной: PRAKTIKUM_TOKENTELEGRAM_TOKENTELEGRAM_CHAT_ID.

Чтобы запустить приложение, необходимо перейти во вкладку Resources и активировать переключатель напротив строки worker python homework.py.

Теперь ваш бот будет работать круглые сутки, даже без перерыва на обед.

Если что-то пойдёт не так, то можно почитать логи, для этого нажмите More → View Logs.

Обратите внимание на ограничения бесплатного аккаунта Heroku: между запросами не должно быть более получаса, иначе сервер «уснёт» и перестанет отвечать. Пусть бот опрашивает API домашки раз в 20 минут или около того.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий