{"id":13640219,"url":"https://github.com/DavisDmitry/aiogram-yandex.cloud-serverless-example","last_synced_at":"2025-04-20T02:32:56.933Z","repository":{"id":118845058,"uuid":"285394005","full_name":"DavisDmitry/aiogram-yandex.cloud-serverless-example","owner":"DavisDmitry","description":"Пример простого Telegram бота на Aiogram для Yandex.Cloud functions.","archived":true,"fork":false,"pushed_at":"2020-08-17T20:10:40.000Z","size":785,"stargazers_count":36,"open_issues_count":0,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-08-03T01:16:28.472Z","etag":null,"topics":["aiogram","python","python3","serverless","telegram","telegram-bot","telegram-bot-api","yandex-cloud","yandex-cloud-functions"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DavisDmitry.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-08-05T20:12:49.000Z","updated_at":"2024-07-07T14:13:36.000Z","dependencies_parsed_at":"2024-01-14T12:08:45.448Z","dependency_job_id":"e5b0f0ca-e8e6-462c-bed6-6b4e77774e7d","html_url":"https://github.com/DavisDmitry/aiogram-yandex.cloud-serverless-example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavisDmitry%2Faiogram-yandex.cloud-serverless-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavisDmitry%2Faiogram-yandex.cloud-serverless-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavisDmitry%2Faiogram-yandex.cloud-serverless-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavisDmitry%2Faiogram-yandex.cloud-serverless-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DavisDmitry","download_url":"https://codeload.github.com/DavisDmitry/aiogram-yandex.cloud-serverless-example/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223816482,"owners_count":17207867,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aiogram","python","python3","serverless","telegram","telegram-bot","telegram-bot-api","yandex-cloud","yandex-cloud-functions"],"created_at":"2024-08-02T01:01:08.997Z","updated_at":"2024-11-09T10:30:59.088Z","avatar_url":"https://github.com/DavisDmitry.png","language":"Python","funding_links":[],"categories":["Bots"],"sub_categories":[],"readme":"# Aiogram Yandex.Cloud serverless example\n[![Supported python versions](https://img.shields.io/badge/Python-3.7%20%7C%203.8-blue?style=flat-square\u0026logo=python)](https://www.python.org/)\n[![Telegram Bot API](https://img.shields.io/badge/Telegram%20Bot%20API-lightgrey?style=flat-square\u0026logo=telegram)](https://core.telegram.org/bots/api/)\n[![Aiogram](https://img.shields.io/badge/Aiogram-blue?style=flat-square)](https://github.com/aiogram/aiogram/)\n[![Yandex.Cloud](https://img.shields.io/badge/Yandex.Cloud-functions-9cf?style=flat-square\u0026logo=data:image/png;base64,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)](https://cloud.yandex.ru/)\n\nПример простого Telegram бота на Aiogram для Yandex.Cloud functions.\n## AWS Lambda \u0026 API Gateway VS Yandex.Cloud functions\n|  | AWS Lambda \u0026 API Gateway | Yandex.Cloud functions |\n|:-:|:-:|:-:|\n| Удобство создания функции | - (создавать нужно не только функцию, но и триггер из API Gateway) | + |\n| Автоматическая установка пакетов | - (приходятся вручную добавлять в пакет для загрузки) | + (достаточно создать файл `requirements.txt`) |\n| Поддержка асинхронности | +- (нужно самостоятельно запускать loop из синхронного хендлера) | + (работает \"из коробки\") |\n| Поддержка Python 3.8 | + | - |\n| Цена | + (выходит очень дёшево и есть огромный free tier) | - (примерно 50 рублей за миллион вызовов, бесплатно только в пробный период (2 месяца)) |\n## Настройка бота\n- [Создайте бота у Botfather](https://core.telegram.org/bots#6-botfather)\n### Создание функции в Яндекс.Облаке\n- [Перейдите в консоль Яндекс.Облака](https://console.cloud.yandex.ru/)\n- Создайте платёжный профиль и облако\n- В меню слева выберите Cloud Functions\n- Создайте функцию\n- В редакторе выберите среду выполнения `python37-preview` (**Это важно**)\n### Загрузка кода в функцию\n#### С помощью zip-файла\n- Склонируйте данный репозиторий (`git clone https://github.com/DavisDmitry/aiogram-yandex.cloud-serverless-example`)\n- Перейдите в директорию репозитория\n- Поместите файлы `main.py` и `requierements.txt` в zip архив вручную или с помощью bash-скрипта: `./create-package.sh`\n- Загрузите zip-архив в функцию Яндекс.Облака\n- Укажите точку входа `main.handler`\n- Выберите сервисный аккаунт или создайте новый\n- Установите переменные окружения, они описаны ниже\n#### С помощью редактора\n- Создайте файлы `main.py` и `requirements.txt`\n- Скопируйте содержимое из аналогичный файлов в репозитории\n- Укажите точку входа `main.handler`\n- Выберите сервисный аккаунт или создайте новый\n- Установите переменные окружения, они описаны ниже\n#### Переменные окружения:\n- `TOKEN`: Bot API token, полученный от botfather\n- `LOGGING_LEVEL`: уровень логирования (опцианально), по умолчанию - `info`\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"readme-images/logging_levels.png\" /\u003e\n\u003c/p\u003e\n\n### Profit!\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"readme-images/result.gif\" /\u003e\n\u003c/p\u003e\n\n## P.S.\nКод в данном репозитории почти полностью повторяет [другую мою работу](https://github.com/DavisDmitry/aiogram-aws-serverless-example). Serverless технологии очень похожи у разных провайдеров.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDavisDmitry%2Faiogram-yandex.cloud-serverless-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDavisDmitry%2Faiogram-yandex.cloud-serverless-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDavisDmitry%2Faiogram-yandex.cloud-serverless-example/lists"}