Skip to content

Zen-Crow/echo-bot-with-terraform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Echo Bot для уведомлений

  • Этот проект представляет собой эхо бота, который отправляет уведомления через Telegram. Он использует Yandex Cloud API Gateway, serverless функции и триггер для установки вебхука. Все ресурсы управляются с помощью Terraform.

Содержание

Описание

  1. Пользователь отправляет сообщение боту в Telegram.

  2. Telegram пересылает сообщение на вебхук через Yandex API Gateway.

  3. API Gateway перенаправляет запрос на Serverless Function (бота).

  4. Serverless Function (index.py) обрабатывает сообщение и отправляет ответ через Telegram API.

  5. Serverless Function (webhook.py) настраивает вебхук для связи Telegram и API Gateway.

  6. Trigger может автоматически обновлять вебхук или выполнять задачи по расписанию.

Технологии

  • Yandex Cloud
  • API Gateway
  • Serverless Functions
  • Terraform
  • Python

Настройка

  • Убедитесь, что у вас установлен Terraform и Yandex CLI. Инструкции по установке можно найти в документации Terraform и документации Yandex Cloud.

Установка

  1. Клонируйте репозиторий:

    git clone https://github.com/Zen-Crow/yandex-cloud-bot-with-terraform.git

    cd yandex-cloud-bot-with-terraform/dev

  2. Установите переменные окружения из фала .env для своей операционной системы.

Запуск проекта

команды выполняются из директории "dev"

Инициализируйте Terraform:            terraform init
Проверьте план развертывания:         terraform plan
Примените конфигурацию Terraform:     terraform apply

удалить ресурсы:                      terraform destroy

Удаление Webhook'a

  • 1 способ. Удаление Webhook в консоли Yandex Cloud.

Перейдите в консоль Yandex Cloud. Найдите serverless function, отвечающую за установку Webhook. Запустите функцию, которая удаляет Webhook.

Для этого: Откройте файл webhook.py. Установите значение переменной method = "deleteWebhook". Сохраните изменения и выполните функцию, чтобы удалить Webhook.

  • 2 способ. Удаление Webhook через API Telegram.

Если вы предпочитаете использовать terminal, выполните следующую команду (не забудьте заменить $TELEGRAM_BOT_TOKEN на ваш токен):

curl -X POST https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/deleteWebhook

Описание работы триггера

  • Срабатывание триггера:

Триггер запускается каждую минуту, инициируя процесс установки вебхука для Telegram бота. Это позволяет боту получать входящие сообщения от пользователей.

  • Работа триггера:

После срабатывания триггер выполняет необходимые действия для установки вебхука. В этот момент он должен корректно обрабатывать входящие сообщения и выполнять требуемые действия.

  • Удаление триггера:

Триггер автоматически удаляется через 2 минуты после его срабатывания. Это достигается с помощью ресурса null_resource, который создает задержку в 2 минуты перед удалением триггера. Это позволяет избежать возможных конфликтов и повторных срабатываний.

  • Задержка времени:

Задержка времени на работу триггера составляет 2 минуты, что позволяет убедиться в том, что все процессы, связанные с установкой вебхука, успешно завершены. После истечения этого времени триггер удаляется, освобождая ресурсы.

Как использовать

  • Вы можете дополнительно адаптировать этот проект под свои нужды или добавлять дополнительные детали, изменив файлы index.py и webhook.py необходимо создать zip архив для каждого файла в отдельности со своими зависимостями если это требуется для вашего проекта.

P.S. Желаю вам успехов в ваших проектах! Верьте в себя и продолжайте двигаться вперед!

Packages

No packages published