[Документация Yandex Cloud](../../../index.md) > [Yandex Cloud Functions](../../index.md) > [Концепции](../index.md) > Триггер > Обзор

# Триггеры в Cloud Functions. Обзор

_Триггер_ — условие, при выполнении которого автоматически вызывается [функция](../function.md) Cloud Functions.

Один триггер может одновременно вызывать несколько функций Cloud Functions и контейнеров Serverless Containers, а также отправлять сообщения в WebSocket-соединения одного или нескольких API-шлюзов Yandex API Gateway.

Триггеры позволяют автоматизировать работу с другими сервисами Yandex Cloud, например: Yandex Object Storage, Yandex Message Queue и Yandex Container Registry.

{% note info %}

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

{% endnote %}

В Cloud Functions доступны следующие типы триггеров: 
* [таймер](timer.md);
* [триггер для Message Queue](ymq-trigger.md);
* [триггер для Object Storage](os-trigger.md);
* [триггер для Container Registry](cr-trigger.md);
* [триггер для Cloud Logging](cloud-logging-trigger.md);
* [триггер для Yandex IoT Core](iot-core-trigger.md);
* [триггер для бюджетов](budget-trigger.md);
* [триггер для Data Streams](data-streams-trigger.md);
* [триггер для почты](mail-trigger.md);
* [триггер для Telegram](telegram-trigger.md).

У каждого типа триггера есть индивидуальные условия срабатывания. Например, у триггера для Object Storage это может быть [создание](../../../storage/operations/objects/upload.md) или [изменение](../../../storage/operations/objects/edit-acl.md) объекта. Некоторые условия задаются в настройках объекта сервиса, например у триггера для бюджетов это пороги для уведомлений в настройках [бюджета](../../../billing/concepts/budget.md).

## Особенности вызова функции триггером {#invoke}

Триггеры вызывают функции с учетом установленных [квот и лимитов](../limits.md).

При вызове функции триггером существуют следующие особенности:
- Функция всегда вызывается триггером с параметром строки запроса `?integration=raw`. Подробнее о вызове функции в разделе [Вызов функции в Cloud Functions](../function-invoke.md).
- Перед передачей сообщений в функцию триггер изменяет их формат. У каждого типа триггера свой формат сообщений. Подробнее читайте в описании соответствующего триггера.
- Сервисному аккаунту, от имени которого будет вызываться функция, необходима роль `functions.functionInvoker`. Другие роли, необходимые для корректной работы триггера, зависят от его типа. Подробнее читайте в описании соответствующего триггера.
- Если работа триггера была приостановлена пользователем, а затем снова запущена, то все события, произошедшие за время простоя, не будут обработаны.

## Фильтрация событий {#filter-messages}

Для каждого вызываемого ресурса в триггере можно задать фильтр — выражение в [формате jq](https://jqlang.github.io/jq/manual/), которое применяется к событию перед отправкой. Фильтр возвращает булевый ответ. Если результат:
* `true`, событие отправляется в приемник;
* `false` или событие не удалось распарсить, оно не отправляется.

Фильтр задается отдельно для каждого приемника, поэтому один триггер может доставлять разные события разным приемникам. Если фильтр не задан, в приемник отправляются все события.

## Преобразование событий {#transform-messages}

Для каждого приемника в триггере можно задать шаблон преобразования в [формате jq](https://jqlang.github.io/jq/manual/), по которому событие преобразуется перед отправкой. Преобразование позволяет, например:

* привести событие к формату, ожидаемому приемником;
* оставить в событии только нужные поля;
* добавить в событие собственные поля и значения.

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

## Группирование событий {#batching}

Настройки группирования позволяют передавать в приемник сразу несколько событий. Эти настройки задают ограничение сверху по размеру группы событий и по времени ее накопления. Например, если размер группы событий равен 3, то в приемник могут поступать группы, в которых содержится от 1 до 3 событий.

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

* триггер для Message Queue;
* триггер для Cloud Logging;
* триггер для Object Storage;
* триггер для Container Registry;
* триггер для Yandex IoT Core;
* триггер для Data Streams;
* триггер для почты;
* триггер для Telegram.

## Повторные вызовы функции {#invoke-retry}

Вы можете настроить повторный вызов функции, если текущий завершился неуспешно. Для этого в параметрах триггера задайте:

* **Интервал** — время, через которое будет сделан повторный вызов функции.
* **Количество попыток** — количество повторных вызовов функции, которые будут сделаны, прежде чем триггер отправит сообщение в [Dead Letter Queue](../dlq.md).

Настройка доступна для всех типов триггеров, кроме триггера для Message Queue.

Подробнее о повторных запросах читайте в инструкции по созданию соответствующего триггера.

## Примеры использования {#examples}

* [Запись данных с устройства в базу данных](../../tutorials/data-recording.md)
* [Передача событий Yandex Cloud Postbox в Yandex Data Streams и их анализ с помощью Yandex DataLens](../../tutorials/events-from-postbox-to-yds.md)
* [Настройка реагирования в Yandex Cloud Logging и Cloud Functions](../../tutorials/logging-functions.md)
* [Запись логов балансировщика в PostgreSQL](../../tutorials/logging.md)
* [Запуск вычислений по расписанию в DataSphere](../../tutorials/regular-launch-datasphere.md)
* [Создание триггера для бюджетов, который вызывает функцию Cloud Functions для остановки ВМ](../../tutorials/serverless-trigger-budget-vm.md)
* [Конвертация видео в GIF на Python](../../tutorials/video-converting-queue/index.md)

## Полезные ссылки {#see-also}

* [Триггеры для запуска контейнера Serverless Containers](../../../serverless-containers/concepts/trigger/index.md)
* [Триггеры для отправки сообщений в WebSocket-соединения](../../../api-gateway/concepts/trigger/index.md)