aiogram-yandex.cloud-serverless-example
README.md
Aiogram Yandex.Cloud serverless example
Пример простого 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 месяца)) |
Настройка бота
Создание функции в Яндекс.Облаке
- Перейдите в консоль Яндекс.Облака
- Создайте платёжный профиль и облако
- В меню слева выберите 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, полученный от botfatherLOGGING_LEVEL
: уровень логирования (опцианально), по умолчанию -info
Profit!
P.S.
Код в данном репозитории почти полностью повторяет другую мою работу. Serverless технологии очень похожи у разных провайдеров.
Описание
Fork https://github.com/DavisDmitry/aiogram-yandex.cloud-serverless-example
Языки
Python
- Shell