Триггеры в Cloud Functions. Обзор
Триггер — условие, при выполнении которого автоматически запускается функция Cloud Functions. Триггеры позволяют автоматизировать работу с другими сервисами Yandex Cloud, например: Yandex Object Storage, Yandex Message Queue и Yandex Container Registry.
Примечание
Триггер начинает работать в течение 5 минут после создания.
В Cloud Functions доступны следующие типы триггеров:
- таймер;
- триггер для Message Queue;
- триггер для Object Storage;
- триггер для Container Registry;
- триггер для Cloud Logging;
- триггер для Yandex IoT Core;
- триггер для бюджетов;
- триггер для Data Streams;
- триггер для почты.
У каждого типа триггера есть индивидуальные условия срабатывания. Например, у триггера для Object Storage это может быть создание или изменение объекта. Некоторые условия задаются в настройках объекта сервиса, например у триггера для бюджетов это пороги для уведомлений в настройках бюджета.
Особенности вызова функции триггером
Триггеры вызывают функции с учетом установленных квот и лимитов.
При вызове функции триггером существуют следующие особенности:
- Функция всегда вызывается триггером с параметром строки запроса
?integration=raw
. Подробнее о вызове функции см. в разделе Вызов функции в Cloud Functions. - Перед передачей сообщений в функцию, триггер изменяет их формат. У каждого типа триггера свой формат сообщений. Подробнее см. описание соответствующего триггера.
- Сервисному аккаунту, от имени которого будет вызываться функция, необходима роль
functions.functionInvoker
. Другие роли, необходимые для корректной работы триггера, зависят от его типа. Подробнее см. описание соответствующего триггера. - Если работа триггера была приостановлена пользователем, а затем снова запущена, то все события, произошедшие за время простоя, не будут обработаны.
Группирование сообщений
Вы можете настроить группирование сообщений перед вызовом функции у следующих триггеров:
- триггер для Message Queue;
- триггер для Cloud Logging;
- триггер для Object Storage;
- триггер для Container Registry;
- триггер для Yandex IoT Core;
- триггер для Data Streams;
- триггер для почты.
Это позволит вызывать функцию не для каждого отдельного сообщения, а для целой группы сообщений. Для этого в параметрах триггера задайте:
- Время ожидания, с — время, в течение которого происходит группирование сообщений. Число сообщений при этом не превышает указанный размер группы.
- Размер группы — количество сообщений для группирования.
Подробнее о группировании сообщений читайте в инструкциях по созданию соответствующего триггера.
Повторные вызовы функции
Вы можете настроить повторный вызов функции, если текущий завершился неуспешно. Для этого в параметрах триггера задайте:
- Интервал — время, через которое будет сделан повторный вызов функции.
- Количество попыток — количество повторных вызовов функции, которые будут сделаны, прежде чем триггер отправит сообщение в Dead Letter Queue.
Настройка доступна для всех типов триггеров, кроме триггера для Message Queue.
Подробнее о повторных запросах читайте в инструкции по созданию соответствующего триггера.
Примеры использования
- Запись данных с устройства в базу данных
- Передача событий Yandex Cloud Postbox в Yandex Data Streams и их анализ с помощью Yandex DataLens
- Настройка реагирования в Yandex Cloud Logging и Cloud Functions
- Запись логов балансировщика в PostgreSQL
- Запуск вычислений по расписанию в DataSphere
- Создание триггера для бюджетов, который вызывает функцию Cloud Functions для остановки ВМ
- Конвертация видео в GIF на Python