https://github.com/DavisDmitry/aiogram-yandex.cloud-serverless-example
Пример простого Telegram бота на Aiogram для Yandex.Cloud functions.
https://github.com/DavisDmitry/aiogram-yandex.cloud-serverless-example
aiogram python python3 serverless telegram telegram-bot telegram-bot-api yandex-cloud yandex-cloud-functions
Last synced: 3 months ago
JSON representation
Пример простого Telegram бота на Aiogram для Yandex.Cloud functions.
- Host: GitHub
- URL: https://github.com/DavisDmitry/aiogram-yandex.cloud-serverless-example
- Owner: DavisDmitry
- License: mit
- Archived: true
- Created: 2020-08-05T20:12:49.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2020-08-17T20:10:40.000Z (almost 5 years ago)
- Last Synced: 2024-08-03T01:16:28.472Z (12 months ago)
- Topics: aiogram, python, python3, serverless, telegram, telegram-bot, telegram-bot-api, yandex-cloud, yandex-cloud-functions
- Language: Python
- Homepage:
- Size: 767 KB
- Stars: 36
- Watchers: 4
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Aiogram Yandex.Cloud serverless example
[](https://www.python.org/)
[](https://core.telegram.org/bots/api/)
[](https://github.com/aiogram/aiogram/)
[](https://cloud.yandex.ru/)Пример простого Telegram бота на Aiogram для Yandex.Cloud functions.
## AWS Lambda & API Gateway VS Yandex.Cloud functions
| | AWS Lambda & API Gateway | Yandex.Cloud functions |
|:-:|:-:|:-:|
| Удобство создания функции | - (создавать нужно не только функцию, но и триггер из API Gateway) | + |
| Автоматическая установка пакетов | - (приходятся вручную добавлять в пакет для загрузки) | + (достаточно создать файл `requirements.txt`) |
| Поддержка асинхронности | +- (нужно самостоятельно запускать loop из синхронного хендлера) | + (работает "из коробки") |
| Поддержка Python 3.8 | + | - |
| Цена | + (выходит очень дёшево и есть огромный free tier) | - (примерно 50 рублей за миллион вызовов, бесплатно только в пробный период (2 месяца)) |
## Настройка бота
- [Создайте бота у Botfather](https://core.telegram.org/bots#6-botfather)
### Создание функции в Яндекс.Облаке
- [Перейдите в консоль Яндекс.Облака](https://console.cloud.yandex.ru/)
- Создайте платёжный профиль и облако
- В меню слева выберите Cloud Functions
- Создайте функцию
- В редакторе выберите среду выполнения `python37-preview` (**Это важно**)
### Загрузка кода в функцию
#### С помощью zip-файла
- Склонируйте данный репозиторий (`git clone https://github.com/DavisDmitry/aiogram-yandex.cloud-serverless-example`)
- Перейдите в директорию репозитория
- Поместите файлы `main.py` и `requierements.txt` в zip архив вручную или с помощью bash-скрипта: `./create-package.sh`
- Загрузите zip-архив в функцию Яндекс.Облака
- Укажите точку входа `main.handler`
- Выберите сервисный аккаунт или создайте новый
- Установите переменные окружения, они описаны ниже
#### С помощью редактора
- Создайте файлы `main.py` и `requirements.txt`
- Скопируйте содержимое из аналогичный файлов в репозитории
- Укажите точку входа `main.handler`
- Выберите сервисный аккаунт или создайте новый
- Установите переменные окружения, они описаны ниже
#### Переменные окружения:
- `TOKEN`: Bot API token, полученный от botfather
- `LOGGING_LEVEL`: уровень логирования (опцианально), по умолчанию - `info`
![]()
### Profit!
![]()
## P.S.
Код в данном репозитории почти полностью повторяет [другую мою работу](https://github.com/DavisDmitry/aiogram-aws-serverless-example). Serverless технологии очень похожи у разных провайдеров.