Триггеры, логирование, мониторинг
Кратко:
- Триггеры автоматизируют запуск функций и облегчают отладку.
- Триггеры позволяют автоматизировать работу с другими сервисами Yandex Cloud.
- Логирование помогает найти причину нештатного поведения функции.
- Мониторинг предоставляет наглядную статистику работы функции.
- Yandex Monitoring предоставляет расширенный мониторинг и автоматическое оповещение.
Триггеры, логирование, мониторинг
Итак, вы запустили свою первую облачную функцию. Теперь давайте поговорим об инструментах, которые помогут автоматизировать запуск функций и отладить их работу. Это триггеры, логирование и мониторинг.
Триггеры
Допустим, вы написали функцию, которая обращается к базе данных и считывает из неё напоминания. Если время напоминания пришло, то функция отправляет его в Telegram, скажем, каждые 5 минут.
Сами по себе функции имеют только один механизм вызова — HTTPS-запрос. Реализовать механизм автоматического формирования и отправки такого запроса непросто. К тому же, это противоречит концепции serverless, в которой пользователь не должен беспокоиться о вещах, не связанных с его вычислительной задачей. Поэтому для Cloud Functions были разработаны триггеры.
В терминологии Yandex Cloud триггером является некое условие, при выполнении которого автоматически запускается определённая функция. Общая схема работы выглядит следующим образом:

Как видите, триггеры позволяют автоматизировать работу с другими сервисами Yandex Cloud и вызывают функцию:
- Message Queue — при появлении нового сообщения для обработки.
- IoT Core — при получении посылки с данными от устройства.
- Object Storage — при создании, редактировании ACL или удалении объекта.
- Container Registry — при создании или удалении Docker-образа или тега Docker-образа.
Таймер позволяет запускать функции с интервалом, который задаётся при помощи cron-выражений. Таймер может быть полезен для периодической проверки доступности вашего сайта или для создания резервной копии данных по расписанию. Справку по использованию cron-выражений вы найдёте в документации.
Подробно создание триггеров мы разберём в следующем уроке.
Логирование
Если при выполнении функции возникли неполадки, вы можете зайти в журнал этой функции, увидеть детали выполнения и найти причину нештатного поведения. Этот журнал доступен в разделе Логи. В нём сохраняются все данные о запуске функции, времени её выполнения и потреблённых ресурсах.

Кроме того, вы можете писать в журнал собственные сообщения во время выполнения функции и использовать стандартные конструкции языка программирования. Подробнее про использование журнала в каждой из сред выполнения можно узнать из документации к сервису.
На одном из следующих практических занятий вы научитесь читать журнал для отладки функции.
Мониторинг
Статистика по работе функции наглядно представлена в разделе Мониторинг. Здесь вы можете увидеть нагрузку на сервис и количество ошибок, если они есть.
Всего вам доступно два вида мониторинга работы сервиса. Первый — встроенный в пользовательский интерфейс консоли управления в разделе Мониторинг:

Здесь доступны метрики:
- Количество вызовов функций в минуту — график Requests, [rps];
- Задержка выполнения функции — график Request latency, [ms];
- Количество ошибок, возникших при выполнении функции — график Errors, [count];
- Количество одновременно выполняющихся вызовов функции — график Inflight, [pcs];
- Объем памяти, потребляемой функцией — график Used memory, [MB];
- Количество инициализаций функции в секунду — график Initializations, [pcs/s].
Второй вариант — сервис Yandex Monitoring, где можно отслеживать все перечисленные выше метрики и их представление, а также настроить автоматическое оповещение (например при возникновении ошибок при выполнении функции).
Вы познакомились с основными понятиями и принципами работы сервиса Yandex Serverless Functions. Теперь давайте попробуем на практике использовать триггер от Object Storage.