evo-containerapp-telegrambot-webhook-python-sample
evo-containerapp-telegrambot-webhook-python-sample
Пример развертывания telegram бота на python на Evolution Container Apps
Телеграм бот написан на python 3.12.3 с использование aiogram и aiohttp, telegram webhook
Для запуска телеграм бота через Container Apps необходимо:
- Получить токен для телеграм бота - написать @BotFather
- Собрать и запушать docker образ в Artifact Registry
- Создать Container Apps
- Добавить webhook в telegram
Получение telegram bot token
- Создать телеграм бота через @BotFather
- Получить токен
Сборка и пуш docker образа в Artifact Registry
Необходимо собрать docker образ и запушать его в Artifact Registry. Документация
Шаги:
# 1. Авторизацияdocker login <registry_name>.cr.cloud.ru -u <key_id> -p <key_secret># 2. Сборка Docker образаdocker build . -t <registry_name>.cr.cloud.ru/telegrambot:latest --platform linux/amd64# 3. Пуш образа в Artifact Registrydocker push <registry_name>.cr.cloud.ru/telegrambot:latest
Создание Container Apps
При создании Container App необходимо:
- Включить создание публичного адреса (будет использоваться для webhook)
- Выбрать docker образ с телеграм ботом
- Ввести порт (можно любой, рекомендуем 8000)
- В разделе
добавить: BOT_TOKEN=Переменныетокен_из_bot_father - В разделе
выбрать 0.5 vCPU, чтобы cold start был меньшеКонфигурация
поставить в 0 (cold start)Мин кол-во экземпляров
Добавление webhook в telegram
Чтобы bot получал сообщения из telegram, нужно добавить webhook. Можно открыть ссылку в браузере.
Шаги:
- Проверить существуют ли webhook: https://api.telegram.org/bot{BOT_TOKEN}/getWebhookInfo
- Удалить существующие webhook: https://api.telegram.org/bot{BOT_TOKEN}/deleteWebhook
- Добавить новый webhook: https://api.telegram.org/bot{BOT_TOKEN}/setWebhook?url={PUBLIC_URL}/{BOT_TOKEN}
Заменить:
- Вместо
- поставить токен телеграм бота (BotFather){BOT_TOKEN} - Вместо
- поставить публичный адрес (Container Apps){PUBLIC_URL}
Описание
Пример развертывания telegram бота на python на Evolution Container Apps
Языки
Python
- Dockerfile