Деплой Телеграмм бота российские сервисы

Как задеплоить своего телеграм-бота (почти) бесплатно — Quickguide в облачный Serverless

2023-05-24 в 7:01, admin , рубрики: API Gateway, devops, Go, serverless, serverless containers, ydb, Блог компании Yandex Cloud time» type User struct

В качестве сервера использую echo от labstack (очень нравится синтаксис).

package main import ( «log» «os» «yc-qr-bot/pkg/agent» tgbotapi «github.com/go-telegram-bot-api/telegram-bot-api/v5» «github.com/joho/godotenv» «github.com/labstack/echo/v4» ) var Version string func main() < log.Printf(«Version: %vn», Version) godotenv.Load() bot, err := tgbotapi.NewBotAPI(os.Getenv(«TELEGRAM_APITOKEN»)) if err != nil < panic(err) >whInfo, _ := bot.GetWebhookInfo() log.Printf(«whInfo: %#vn», whInfo) a := agent.New(bot) e := echo.New() e.POST(«/», a.HandleUpdate) e.Start(«:» + os.Getenv(«PORT»)) >

Детали самой реализации обработки можно найти в репозитории .

КАК ЗАПУСТИТЬ TELEGRAM БОТА ИЛИ ПАРСЕР НА СЕРВЕРЕ

Самое трудное во всей схеме для новичка — задеплоить решение. Для этого написал Makefile для автоматизации.

include .env create: yc serverless container create —name $(SERVERLESS_CONTAINER_NAME) yc serverless container allow-unauthenticated-invoke —name $(SERVERLESS_CONTAINER_NAME) create_gw_spec: $(shell sed «s/SERVERLESS_CONTAINER_ID/$/;s/SERVICE_ACCOUNT_ID/$/» api-gw.yaml.example > api-gw.yaml) create_gw: create_gw_spec yc serverless api-gateway create —name $(SERVERLESS_CONTAINER_NAME) —spec api-gw.yaml webhook_info: curl —request POST —url «» webhook_delete: curl —request POST —url «» webhook_create: webhook_delete curl —request POST —url «» —header ‘content-type: application/json’ —data «» build: webhook_create docker build -t cr.yandex/$(YC_IMAGE_REGISTRY_ID)/$(SERVERLESS_CONTAINER_NAME) . push: build docker push cr.yandex/$(YC_IMAGE_REGISTRY_ID)/$(SERVERLESS_CONTAINER_NAME) deploy: push $(shell sed ‘s/=.*/=/’ .env > .env.example) yc serverless container revision deploy —container-name $(SERVERLESS_CONTAINER_NAME) —image ‘cr.yandex/$(YC_IMAGE_REGISTRY_ID)/$(SERVERLESS_CONTAINER_NAME):latest’ —service-account-id $(SERVICE_ACCOUNT_ID) —environment=’$(shell tr ‘n’ ‘,’ < .env)’ —core-fraction 5 —execution-timeout $(SERVERLESS_CONTAINER_EXEC_TIMEOUT) all: deploy

Будем использовать утилиту yc CLI. С помощью неё можно управлять ресурсами Yandex Cloud. Установите и инициализируете yc.

Скопируйте .env.example в .env

TELEGRAM_APITOKEN= YC_IMAGE_REGISTRY_ID= SERVICE_ACCOUNT_ID= SERVERLESS_CONTAINER_EXEC_TIMEOUT= SERVERLESS_CONTAINER_NAME= SERVERLESS_CONTAINER_ID= SERVERLESS_CONTAINER_URL= SERVERLESS_APIGW_URL= AWS_DEFAULT_REGION= YDB_ENDPOINT=

Заполните четыре первые переменные.

⚡ Создайте сервисный аккаунт и дайте ему права serverless.containers.invoker container-registry.images.puller ydb.admin а также registry контейнеров .

Потом выполняем: make create

Еще по теме:  Выгрузить свсе посты из Телеграмма

Копируем id созданного Serverless-контейнера, и дописываем в .env

Создаем теперь API Gateway: make create_gw

Копируем URL для доступа к созданному API Gateway и копируем обратно в .env (SERVERLESS_APIGW_URL).

Устанавливаем вебхук для бота: make webhook_create

И, наконец, собираем образ и отправляем в Docker Registry: make deploy

Отправляем в бота сообщение и смотрим в логи Serverless-контейнера.

Если нагрузка на бота незначительная, то стоимость решения будет копеечной. Объясняю почему. Согласно документации первые 1 млн вызовов в месяц для сервиса Serverless Containers — бесплатные. API Gateway — бесплатно первые 100к вызовов ежемесячно. Такая же ситуация с Serverless YDB — 1 миллион Request Units (RU) в месяц бесплатно.

Стоимость размещения моих ботов в месяц не превышает 10 рублей. По сути я плачу только за образы, которые храню в Container Registry.

Как задеплоить своего телеграм-бота (почти) бесплатно — Quickguide в облачный Serverless - 2

Также воспользуюсь случаем и покажу своих ботов:

  • QR Bot: кодирование и декодирование QR-кодов.
  • Stenographer bot: конвертер аудиосообщений в текст. Сделано на базе Yandex SpeechKit
  • Levitan bot: конвертер текста в аудио. Присылайте ему текст — озвучит. Делал, чтобы читать длинные новости в телеграме, пока еду за рулем.
  • Notion To-Do Adder bot: привяжите страницу в Notion и кидайте тудушки в бота — он будет добавлять их в конец страницы.

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

Регистрируем хостинг для работы с Telegram Bots API

Для работы с Telegram Bot API нам необходим качественный хостинг. Возможность в нем заказать сертификат SSL. Также очень важна скорость работы, оперативная и компетентная служба поддержки.

Для работы бота нужен хороший хостинг и SSL-сертификат. Поэтому нужно найти где будут хоститься скрипты-обработчики запросов Telegram Bot API. Выбирая хостинг, я просмотрел кучу сайтов с обзорами и отзывами. Главным критерием была надежность и хорошая служба поддержки. Нельзя чтобы сайт зависал, или вообще не отзывался на действия пользователя. А скорость работы службы поддержки и ее компетенция поможет вам решить любые вопросы, связанные с работой хостинга. Практически везде в лидерах был TimeWeb. На нем и остановился. Теперь все по порядку, как и что я делал. * * * 1. Зашел на сайт TimeWeb, выбрал вкладку Хостинг.

Еще по теме:  Бот в Телеграмме для заработка на подписки реальных денег без вложений с выводом

* * * 2. Выбрал тариф Year+, при оплате за год месяц получается 99 рублей

* * * 3. Заполнил обязательные поля: ФИО, E-mail, Условия оферты. Также указал логин, если его не указать, то система Вам создаст автоматически, например, «Cnn1339».

* * * 4. После нажатия кнопки «Заказать» ко мне на почту пришло письмо с данными для авторизации, и автоматически переадресовало на страницу управления аккаунта. В разделе «Оплата услуг» оплатил год хостинга, это было быстро и удобно.

* * * 5. Далее я зашел в раздел «Домены и поддомены».

* * * 6. Выбрал услугу «Зарегистрировать домен».

* * * 7. В текстовом поле указываем домен, я регистрировал домен iwantlive.ru специально для статьи, нажимаем на кнопку «Добавить к регистрации». Хочу заметить, что хостинг при оплате за год предоставляет бонус на регистрацию домена в зоне .ru, поэтому при оплате выберите способ оплаты домена «использовать бонус».

* * * 8. В открывшемся окне нажал кнопку «Добавить администратора». Заполнил все необходимые регистрационные данные, на этом шаге желательно указывать реальные данные, потому что в спорной ситуации нужно будет подтвердить свое право на домен. Далее нажал кнопку «Зарегистрировать домен». После этой процедуры к вам на указанные адрес администратора домена будут приходить письма со статусом регистрации домена.

* * * 9. Теперь необходимо зайти в раздел «Сайты», там вы увидите созданный сайт «Основной сайт», я его удалил и добавил новый сайт под один из своих проектов.

* * * 10. Указываем название и комментарий.

* * * 11. После создания сайта необходимо привязать к нему наш зарегистрированный домен, он хоть пока еще не прошел процедуру регистрации, и скорее всего будет доступен для работы через 4-6 часов, но мы его все равно можем уже привязать к нашему сайту.

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

* * * 12. Для этого просто в отрывшемся окне выбираем наш домен. Если вы хотите уже сразу посмотреть, что будет выводиться то можете привязать технический домен, он в списке будет доступен, для него просто повторите процедуру. И тогда будут привязаны 2 домена.

* * * 13. Потом мы заходим в раздел «Файловый менеджер» выбираем свой сайт, двойным кликом заходим в него, видим там директорию «public_html» в ней лежат автоматически сгенерированные файлы нашего сайта, по умолчанию это директория «cgi-bin» и файл index.htm.

* * * 14. После того как домен будет зарегистрирован, мы можем заказать SSL сертификат. Для этого выбираем в меню «Дополнительные услуги»

* * * 15. Далее услугу «SSL-сертификаты»

* * * 16. Среди предлагаемых сертификатов мне нравиться «SSL Let`s Encrypt», потому что он бесплатный. Его предоставляют на 3 месяца, и в случае если вы его не отзываете его продлевают еще на 3 месяца и так далее. Нажимаете кнопку «Заказать» и примерно в течении 30 минут его вам изготовят, установят и настроят.

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

P2P-боты: подборка

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