Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Router
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Managed Service for YDB
    • SpeechKit
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • Container Registry
    • Managed Service for Prometheus®
    • Message Queue
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Cloud Apps
    • Yandex AI Studio
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Yandex Cloud Video
    • Stackland
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • DataSphere
    • Vision OCR
    • Translate
    • Cloud Registry
    • SmartCaptcha
    • Cloud Desktop
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Managed Service for GitLab
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Serverless Integrations
    • IoT Core
    • Serverless Containers
    • Cloud Notification Service
    • Yandex Query
  • Статус работы сервисов
  • Marketplace
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»
Yandex API Gateway
RU
  • Начало работы
    • Все инструкции
    • Создание API-шлюза
      • Создать таймер
      • Создать триггер для Message Queue
      • Создать триггер для Object Storage
      • Создать триггер для Container Registry
      • Создать триггер для Cloud Logging
      • Создать триггер для бюджетов
      • Создать триггер для Data Streams
      • Создать триггер для почты
      • Создать триггер для Telegram
    • Просмотр операций с ресурсами сервиса
  • Управление доступом
  • Инструменты
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

В этой статье:

  • Перед началом работы
  • Создать триггер
  • Проверить результат
  1. Пошаговые инструкции
  2. Создание триггера
  3. Создать триггер для Telegram

Создать триггер для Telegram, который отправляет сообщения в WebSocket-соединения

Статья создана
Yandex Cloud
Улучшена
Обновлена 31 августа 2026 г.
Открыть в Markdown
  • Перед началом работы
  • Создать триггер
  • Проверить результат

Создайте триггер для Telegram, который будет отправлять сообщения в WebSocket-соединения Yandex API Gateway, когда Telegram-бот получает новое обновление.

Перед началом работыПеред началом работы

Для создания триггера вам понадобятся:

  • API-шлюз. Сообщения будут отправляться в WebSocket-соединения, подключенные к API-шлюзу по пути, указанному в настройках триггера. Если у вас нет API-шлюза, создайте его.

    Примечание

    Триггер не вызывает API-шлюз при отправке сообщений в WebSocket-соединения.

  • Сервисный аккаунт с ролью api-gateway.websocketBroadcaster. Если у вас нет сервисного аккаунта, создайте его.

  • Telegram-бот и его токен. Если у вас нет бота, создайте его через @BotFather и скопируйте выданный токен.

Создать триггерСоздать триггер

Примечание

Триггер начинает работать в течение 5 минут после создания.

Консоль управления
Terraform
  1. В консоли управления перейдите в каталог, в котором хотите создать триггер.

  2. Перейдите в сервис API Gateway.

  3. На панели слева выберите Триггеры.

  4. Нажмите кнопку Создать триггер.

  5. В блоке Базовые параметры:

    • (Опционально) Введите имя и описание триггера.

    • В поле Метки нажмите кнопку Добавить метку и укажите метки в формате ключ: значение.

    • В поле Тип выберите Telegram.

  6. В блоке Настройки Telegram укажите токен Telegram-бота, полученный от @BotFather.

  7. В блоке Настройки группирования сообщений укажите:

    • размер группы сообщений. Допустимые значения от 1 до 1000, значение по умолчанию — 1.
    • максимальное время ожидания. Допустимые значения от 1 до 60 секунд, значение по умолчанию — 1 секунда.

    Триггер группирует сообщения не дольше указанного времени ожидания и отправляет их в WebSocket-соединения. Число сообщений при этом не превышает указанный размер группы.

  8. В блоке Приёмники:

    1. В поле Тип приёмника выберите API-шлюз.

    2. В блоке Настройки API-шлюза:

      • В поле API-шлюз выберите API-шлюз.
      • В поле Путь укажите путь в OpenAPI-спецификации. Через WebSocket-соединения, которые установлены по этому пути, будут отправляться сообщения.
      • В поле Сервисный аккаунт выберите сервисный аккаунт, от имени которого в WebSocket-соединения будут отправляться сообщения.
    3. (Опционально) В поле Фильтр укажите jq-шаблон для фильтрации событий, передаваемых в приемник. Если фильтр не указан, в приемник передаются все события.

    4. (Опционально) В поле Шаблон преобразования укажите jq-шаблон для преобразования событий перед отправкой в приемник. Если шаблон не указан, события не преобразуются.

  9. Нажмите кнопку Создать триггер.

Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

Подробная информация о ресурсах провайдера в документации на сайте Terraform или в зеркале.

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, аутентифицируйтесь соответствующим способом.

Чтобы создать триггер для Telegram, который отправляет сообщения в WebSocket-соединения:

  1. Опишите в конфигурационном файле параметры триггера:

    resource "yandex_serverless_triggers" "my_trigger" {
      name = "<имя_триггера>"
      source {
        telegram_message {
          bot_token       = "<токен_Telegram-бота>"
          allowed_updates = [ "<тип_обновления>", "<тип_обновления>" ]
          force           = true
        }
      }
      action {
        gateway_websocket_broadcast {
          gateway_id         = "<идентификатор_API-шлюза>"
          path               = "<путь_WebSocket-соединения>"
          service_account_id = "<идентификатор_сервисного_аккаунта>"
        }
        filter {
          jq = ".message.text | startswith(\"/\")"
        }
        transformer {
          jq = ".message"
        }
        retry_policy {
          retry_attempts = "<количество_повторных_отправок>"
          interval       = "<интервал_между_повторными_отправками>"
        }
        dead_letter {
          dead_letter_queue {
            queue_arn          = "<ARN_очереди_Dead_Letter_Queue>"
            service_account_id = "<идентификатор_сервисного_аккаунта>"
          }
        }
      }
    }
    

    Где:

    • name — имя триггера. Формат имени:

      • длина — от 3 до 63 символов;
      • может содержать строчные буквы латинского алфавита, цифры и дефисы;
      • первый символ — буква, последний — не дефис.
    • description — описание триггера. Необязательный параметр.

    • labels — метки триггера в формате ключ:значение. Необязательный параметр.

    • source — параметры источника событий:

      • telegram_message — параметры Telegram-бота:

        • bot_token — токен Telegram-бота, полученный от @BotFather. Значение передается только при создании и изменении триггера и не возвращается в выводе Terraform. При изменении токена вебхук регистрируется заново.
        • allowed_updates — список типов обновлений Telegram, на которые подписывается бот. Необязательный параметр, значение по умолчанию — [ "message" ].
        • force — переустановка вебхука, если для бота уже настроен вебхук на другой URL. Без этого параметра создание триггера завершится ошибкой. Если вебхук уже указывает на этот триггер, параметр ничего не меняет. Необязательный параметр.
    • action — параметры приемника. Блок можно указать несколько раз, чтобы триггер вызывал несколько ресурсов, в том числе разных типов. Максимальное количество ресурсов ограничено лимитами.

      • gateway_websocket_broadcast — параметры API-шлюза:

        • gateway_id — идентификатор API-шлюза.
        • path — путь в OpenAPI-спецификации. Через WebSocket-соединения, которые установлены по этому пути, будут отправляться события.
        • service_account_id — идентификатор сервисного аккаунта с правами на отправку событий в WebSocket-соединения.
      • filter — фильтрация событий перед отправкой в приемник. Необязательный блок.

        • jq — jq-шаблон для фильтрации событий, передаваемых в приемник. Если не указан, в приемник передаются все события.
      • transformer — преобразование событий перед отправкой в приемник. Необязательный блок.

        • jq — jq-шаблон для преобразования событий перед отправкой в приемник. Если не указан, события не преобразуются.
      • retry_policy — параметры повторных запросов. Необязательный блок.

        • interval — время, через которое будет сделана повторная отправка события, если текущая завершилась неуспешно.
        • retry_attempts — количество повторных отправок, которые будут сделаны, прежде чем триггер отправит событие в Dead Letter Queue.
      • dead_letter — параметры очереди сообщений Dead Letter Queue. Необязательный блок.

        • dead_letter_queue — параметры очереди:

          • queue_arn — ARN очереди.
          • service_account_id — идентификатор сервисного аккаунта с правами на запись в очередь.
          • message_attributes — атрибуты, которые будут добавлены к каждому сообщению в очереди, в формате ключ:значение. Необязательный параметр.

    Подробнее о параметрах ресурса yandex_serverless_triggers в документации провайдера.

  2. Создайте ресурсы:

    1. В терминале перейдите в директорию с конфигурационным файлом.

    2. Проверьте корректность конфигурации с помощью команды:

      terraform validate
      

      Если конфигурация является корректной, появится сообщение:

      Success! The configuration is valid.
      
    3. Выполните команду:

      terraform plan
      

      В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.

    4. Примените изменения конфигурации:

      terraform apply
      
    5. Подтвердите изменения: введите в терминале слово yes и нажмите Enter.

    Terraform создаст все требуемые ресурсы. Проверить появление ресурсов можно в консоли управления или с помощью команды CLI:

    yc serverless trigger list
    

Проверить результатПроверить результат

Проверьте, что триггер работает корректно. Для этого посмотрите логи API-шлюза, в них отображается информация об обращениях к нему.

Полезные ссылкиПолезные ссылки

  • Триггер для Telegram, который вызывает функцию Cloud Functions
  • Триггер для Telegram, который вызывает контейнер Serverless Containers

Была ли статья полезна?

Предыдущая
Создать триггер для почты
Следующая
Изменить триггер
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»