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

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

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

Создать триггер для Message Queue, который передает сообщения в функцию Cloud Functions

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

Создайте триггер для очереди сообщений сервиса Message Queue и обрабатывайте их с помощью функции Cloud Functions.

Важно

  • Триггер можно создать только для стандартной очереди сообщений.
  • Триггер должен находиться в одном облаке с очередью, из которой он читает сообщения.
  • Для одной очереди сообщений можно создать только один триггер.

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

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

  • Функция, которую триггер будет вызывать. Если у вас нет функции:

    • Создайте функцию.
    • Создайте версию функции.
  • Сервисные аккаунты с правами:

    • на вызов функции, например functions.functionInvoker;
    • на чтение из очереди, из которой триггер будет принимать сообщения, например ymq.reader.

    Вы можете использовать один и тот же сервисный аккаунт или разные. Если у вас нет сервисного аккаунта, создайте его.

  • Очередь сообщений, из которой триггер будет принимать сообщения. Если у вас нет очереди, создайте ее.

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

Примечание

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

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

  2. Перейдите в сервис Cloud Functions.

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

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

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

    • Введите имя и описание триггера.
    • В поле Тип выберите Message Queue.
    • В поле Запускаемый ресурс выберите Функция.
  6. В блоке Настройки сообщений Message Queue выберите очередь сообщений и сервисный аккаунт с правами на чтение из нее.

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

    • Время ожидания, с. Допустимые значения от 0 до 20 секунд, значение по умолчанию — 10 секунд.
    • Размер группы. Допустимые значения от 1 до 1000, значение по умолчанию — 1.

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

  8. В блоке Настройки функции выберите функцию и укажите:

    • Тег версии функции.
    • Сервисный аккаунт, от имени которого будет вызываться функция.
  9. Нажмите кнопку Создать триггер.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

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

yc serverless trigger create message-queue \
  --name <имя_триггера> \
  --queue <идентификатор_очереди> \
  --queue-service-account-id <идентификатор_сервисного_аккаунта> \
  --invoke-function-id <идентификатор_функции> \
  --invoke-function-service-account-id <идентификатор_сервисного_аккаунта> \
  --batch-size <размер_группы_сообщений> \
  --batch-cutoff <максимальное_время_ожидания>

Где:

  • --name — имя триггера.

  • --queue — идентификатор очереди.

    Чтобы узнать идентификатор очереди:

    1. В консоли управления перейдите в каталог, в котором находится очередь.
    2. Перейдите в сервис Message Queue.
    3. Выберите очередь.
    4. Идентификатор очереди будет в блоке Общая информация, в поле ARN.
  • --invoke-function-id — идентификатор функции.

  • --queue-service-account-name — идентификатор сервисного аккаунта с правами на чтение из очереди сообщений.

  • --invoke-function-service-account-id — идентификатор сервисного аккаунта с правами на вызов функции.

  • --batch-size — размер группы сообщений. Необязательный параметр. Допустимые значения от 1 до 1000, значение по умолчанию — 1.

  • --batch-cutoff — максимальное время ожидания. Необязательный параметр. Допустимые значения от 0 до 20 секунд, значение по умолчанию — 10 секунд. Триггер группирует сообщения не дольше batch-cutoff и отправляет их в функцию. Число сообщений при этом не превышает batch-size.

Результат:

id: dd0cspdch6**********
folder_id: aoek49ghmk**********
created_at: "2019-08-28T12:14:45.762915Z"
name: ymq-trigger
rule:
  message_queue:
    queue_id: yrn:yc:ymq:ru-central1:aoek49ghmk**********:my-mq
    service_account_id: bfbqqeo6jk**********
    batch_settings:
      size: "1"
      cutoff: 10s
    invoke_function:
      function_id: b09e5lu91t**********
      function_tag: $latest
      service_account_id: bfbqqeo6j**********
status: ACTIVE

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

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

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

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

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

Чтобы создать триггер для Message Queue:

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

    resource "yandex_function_trigger" "my_trigger" {
      name        = "<имя_триггера>"
      description = "<описание_триггера>"
      function {
        id                 = "<идентификатор_функции>"
        service_account_id = "<идентификатор_сервисного_аккаунта>"
      }
      message_queue {
        queue_id           = "<идентификатор_очереди>"
        service_account_id = "<идентификатор_сервисного_аккаунта>"
        batch_size         = "<размер_группы_сообщений>"
        batch_cutoff       = "<максимальное_время_ожидания>"
    }
    

    Где:

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

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

    • function — параметры функции:

      • id — идентификатор функции.
      • service_account_id — идентификатор сервисного аккаунта с правами на вызов функции.
    • message_queue — параметры триггера:

      • queue_id — идентификатор очереди сообщений.

        Чтобы узнать идентификатор очереди:

        1. В консоли управления перейдите в каталог, в котором находится очередь.
        2. Перейдите в сервис Message Queue.
        3. Выберите очередь.
        4. Идентификатор очереди будет в блоке Общая информация, в поле ARN.
      • service_account_id — идентификатор сервисного аккаунта с правами на чтение из очереди сообщений.

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

      • batch_cutoff — максимальное время ожидания. Необязательный параметр. Допустимые значения от 0 до 20 секунд, значение по умолчанию — 10 секунд. Триггер группирует сообщения не дольше batch-cutoff и отправляет их в функцию. Число сообщений при этом не превышает batch-size.

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

  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
    

Чтобы создать триггер для Yandex Message Queue, воспользуйтесь методом REST API create для ресурса Trigger или вызовом gRPC API TriggerService/Create.

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

Cloud Functions
Message Queue

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

Проверьте, что количество сообщений в очереди уменьшается. Для этого посмотрите статистику очереди:

  1. Перейдите в сервис Message Queue.
  2. Выберите очередь, для которой создали триггер.
  3. Перейдите в раздел Мониторинг. Посмотрите график Сообщений в очереди.

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

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

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

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