Skip to content
This repository has been archived by the owner on Jul 15, 2021. It is now read-only.

DavisDmitry/aiogram-yandex.cloud-serverless-example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aiogram Yandex.Cloud serverless example

Supported python versions Telegram Bot API Aiogram Yandex.Cloud

Пример простого 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, полученный от botfather
  • LOGGING_LEVEL: уровень логирования (опцианально), по умолчанию - info

Profit!

P.S.

Код в данном репозитории почти полностью повторяет другую мою работу. Serverless технологии очень похожи у разных провайдеров.