Триггеры в Serverless Containers. Обзор
Триггер — условие, при выполнении которого автоматически запускается контейнер Serverless Containers. Триггеры позволяют автоматизировать работу с другими сервисами Yandex Cloud, например: Yandex Object Storage, Yandex Message Queue и Yandex Container Registry.
Примечание
Триггер начинает работать в течение 5 минут после создания.
В Serverless Containers доступны следующие типы триггеров:
- таймер;
- триггер для Message Queue;
- триггер для Object Storage;
- триггер для Container Registry;
- триггер для Cloud Logging;
- триггер для Yandex IoT Core;
- триггер для бюджетов;
- триггер для Data Streams;
- триггер для почты.
У каждого типа триггера есть индивидуальные условия срабатывания. Например, у триггера для Object Storage это может быть создание или изменение объекта. Некоторые условия задаются в настройках объекта сервиса, например у триггера для бюджетов это пороги для уведомлений в настройках бюджета.
Особенности вызова контейнера триггером
Триггеры вызывают контейнер с учетом установленных квот и лимитов.
При вызове контейнера триггером существуют следующие особенности:
- Контейнер необходимо настроить таким образом, чтобы при успешном вызове он возвращал код состояния
2xx
. Другие коды состояния будут интерпретированы как ошибка вызова, что приведет к повторному вызову контейнера. - Перед передачей сообщений в контейнер, триггер изменяет их формат. У каждого типа триггера свой формат сообщений. Подробнее см. описание соответствующего триггера.
- Сервисному аккаунту, от имени которого будет вызываться контейнер, необходима роль
serverless-containers.containerInvoker
. Другие роли, необходимые для корректной работы триггера, зависят от его типа. Подробнее см. описание соответствующего триггера. - Если работа триггера была приостановлена пользователем, а затем снова запущена, то все события, произошедшие за время простоя, не будут обработаны.
Группирование сообщений
Вы можете настроить группирование сообщений перед вызовом контейнера у следующих триггеров:
- триггер для Message Queue;
- триггер для Cloud Logging;
- триггер для Object Storage;
- триггер для Container Registry;
- триггер для Yandex IoT Core;
- триггер для Data Streams;
- триггер для почты.
Это позволит вызывать контейнер не для каждого отдельного сообщения, а для целой группы сообщений. Для этого в параметрах триггера задайте:
- Время ожидания, с — время, в течение которого происходит группирование сообщений. Число сообщений при этом не превышает указанный размер группы.
- Размер группы — количество сообщений для группирования.
Подробнее о группировании сообщений читайте в инструкциях по созданию соответствующего триггера.
Повторные вызовы контейнера
Вы можете настроить повторный вызов контейнера, если текущий завершился неуспешно. Для этого в параметрах триггера задайте:
- Интервал — время, через которое будет сделан повторный вызов контейнера.
- Количество попыток — количество повторных вызовов контейнера, которые будут сделаны, прежде чем триггер отправит сообщение в Dead Letter Queue.
Настройка доступна для всех типов триггеров, кроме триггера для Message Queue.
Подробнее о повторных запросах читайте в инструкции по созданию соответствующего триггера.