Выгрузка Телеграм бота python на сервер

Одним из современных архитектурных подходов в области облачных вычислений является так называемый Serverless. Этот способ запуска приложений в облаке освобождает разработчиков от нужды администрировать сервер и заботиться о чем-то, кроме кода.

Очевидно, что для такой задачи, как телеграм бот, этот подход очень удобен.

В этой статье описаны все шаги для запуска бота в Yandex.Cloud Functions. Опоры на код я не делаю. Наша основная задача сейчас — настроить запуск в облаке.

Создадим бота

Настройка Yandex.Cloud

Для работы с Яндекс.Облаком перейдите на сайт https://cloud.yandex.ru/ и войдите в свой аккаунт. Если вы все сделали правильно, вы увидите рабочий дашборд.

Cloud Functions

  • Перейдите в раздел Cloud Functions
  • Создайте новую функцию c названием, например, python-tg-bot .
  • Укажите язык python и выберите самую последнюю версию (python3.8 на момент написания этой статьи).
  • В настройках функции загрузите код бота. Скачать архив можно по ссылке. Параметры укажите как на картинке. В переменные окружения добавьте поле BOT_TOKEN и вставьте токен, полученный в самом начале. После обязательно нажмите Создать версию, чтобы запустить функцию.
  • Запомним идентификатор функции (первая строка)

API-Gateway

Чтобы мы смогли получить доступ к нашей функции, нужно настроить API-Gateway.

Телеграм бот на Python / #10 – Выгрузка бота на сервер

  • Перейдите в раздел API-Gateway
  • Создайте новый шлюз и настройте его.Скопируйте конфигурацию и замените YOUR_FUNCTION_ID на идентификатор функции, полученный ранее.
  • Запомним ссылку, по которой можно вызвать нашу функцию
Еще по теме:  Что такое дарк каналы в Телеграмме

Устанавливаем webhook

Теперь нужно сообщить телеграму, куда отправлять информацию о новых сообщениях.

  • Установите библиотеку pip install pyTelegramBotAPI
  • Запустите питоновский скрипт:

Тестируем

Сделали «эхо-бота». Что дальше?

Как говорилось в начале, такой способ запустить бота очень легок для разработчика, но что же делать, если нам нужна база данных или сложные api-запросы к другим ресурсам. Все это можно реализовать в Yandex.Cloud. Например, с помощью сервисов Yandex Database (тоже serverless) или Object Storage. Отдельные сервисы можно запустить, как отдельные функции. В следующей статье, я расскажу о том, как подключить базу данных Yandex Database к боту.

Именно возможность создавать все по кусочкам и уверенность в том, что однажды настроенный модуль будет работать всегда, отличает serverless подход от простого «давайте свалим все в одну виртуальную машину».

Тарифы Yandex.Cloud

До октября 2021 года на сервисы экосистемы бессерверных вычислений будут действовать специальные тарифы. В рамках этих тарифов определенный объем услуг не будет тарифицироваться. Объем рассчитан так, чтобы у вас была возможность разработать и запустить небольшой сервис, сайт или приложение.

  • Yandex API Gateway Каждый месяц не тарифицируются первые 100 000 запросов к API-шлюзам.
  • Yandex Cloud Functions Каждый месяц не тарифицируются:
  • первые 1 000 000 вызовов функций;
  • первые 10 ГБчас выполнения функций.
  • первые 1 000 000 операций (в единицах RU);
  • первый 1 ГБ/месяц хранения данных.
  1. Репозиторий с кодом бота
  2. Yandex.Cloud
  3. Описание тарифа free tier

Источник: personeltest.ru

Есть ли способ сохранить работоспособность бота Telegram при закрытии Python? [Дубликат]

Я создал очень простой бот Telegram, следуя этот учебник. Поэтому у меня есть файл, содержащий код Python, и когда я запускаю этот код, бот будет повторять то, что я говорю. Правда ли, что бот будет работать только тогда, когда у меня включен Python и код работает? Означает ли это, что я не могу запустить любой другой script в Python в одно и то же время, и ни один из них не может закрыть Python, если я хочу, чтобы мой бот продолжал работать? Есть ли способ обойти это, так что бот всегда будет ‘on’?

Еще по теме:  Если Телеграм есть аккаунт как восстановить доступ к странице

Johanna 25 фев. 2017, в 09:41
Поделиться

Is it true that the bot will only work when I have Python on and the code running? Would this mean that I cannot run any other script in Python at the same time, and neither can close Python down if I want my bot to keep working? — это неправда. Процесс Python — это просто экземпляр интерпретатора. Вы можете запустить и использовать столько, сколько хотите. Чтобы конкретный процесс выполнялся в фоновом режиме даже после закрытия оболочки, сделайте его демоном. Самый простой способ (хотя и не самый красивый) — использовать nohup и передать вывод вашего бота в текстовый файл.

Eli Korvigo 25 фев. 2017, в 08:24
Этот вопрос не имеет ничего общего с параллельным программированием
Antwane 25 фев. 2017, в 20:42
Поделиться:
telegram-bot

2 ответа

Лучший ответ

Бот телеграмм — это программа Python. Когда вы запускаете его, он делает то, что он должен делать, тогда, если вы остановите программу, бот перестанет работать. Проблематика является общей для всех программ, особенно на сервере. Подумайте о Nginx, Apache, ssh и т.д. Все это программы, и все они перестают выполнять свою работу, когда закрываются.

Если вы хотите убедиться, что ваш бот будет работать всегда, вы должны его демонизировать. Существует множество решений.

Вы можете преобразовать ваш script в качестве демона, поэтому при его запуске он переходит непосредственно в фоновый режим и продолжает работать до тех пор, пока сервер не будет отключен (или сбой программы). Но в этом случае ваш бот будет повторно запускаться, если вы (или кто-то еще) перезагрузите компьютер (сервер)? Для этой цели есть несколько библиотек python, таких как daemonize.

Еще по теме:  Как создать марафон в Телеграмме

Другим распространенным решением является запуск вашего бота в диспетчере процессов. Например, вы можете проверить supervisorctl, или вы можете решить создать script для запуска вашей программы из System V, UpStart или Systemd. Предположим, вы хотите развернуть свой бот на выделенном сервере или VPS. Это будет рассмотрено в части 3 tutoriel, которую вы следовали:

Следующая и последняя часть этой серии [. ] будет демонстрировать, как развернуть Бот для VPS.

Вы также можете рассмотреть возможность инкапсуляции вашего бота в изображение или контейнер (Docker и т.д.), чтобы запустить его на совместимой платформе.

Источник: overcoder.net

За 10 минут — выгрузка (деплой) телеграм-бота на хостинг и его запуск.

Ссылка хостинг, на нужный тариф: beget.com/p95123/vps Команды в терминале из видео: Переход в директорию бота: cd /itvoploti Установка библиотеки PyTelegramBotAPI: pip install pyTelegramBotAPI Запуск бота в фоновом режиме: nohup python3 main.py Просто о Сложном» Музыка: soundcloud.com/twisterium/night-life-short-besplatnaya-fonovaya-muzyka

Источник: www.videoshou.ru

Рейтинг
( Пока оценок нет )
Загрузка ...