Добавить в корзинуПозвонить
Найти в Дзене

Серверлесс: как использовать Yandex Cloud Functions для нестандартной логики

Был у меня вечер, похожий на все остальные: чай с лимоном, вкладки с документацией, руки тянутся склеить пару сервисов для клиента, а нужен всего лишь небольшой крючок между CRM, сайтом и Telegram. Маленькая, крохотная функция на 15 строк, которая должна принять вебхук, подкрутить логику, дернуть пару API и не падать от капризов трафика. Настраивать сервер ради этого вобще смешно, и тут включается серверлесс. Достаю Yandex Cloud Functions, подкидываю код, даю триггеру URL и смотрю, как всё шевелится. И, честно говоря, каждый раз радуюсь, как будто нашел пульт от телевизора в кармане зимней куртки в мае. Если вы приходите из мира Make.com, 1С или Bitrix24, хотите автоматизировать туда сюда без подъемов виртуалок и плясок, серверлесс ощущается как легальный чит-код. Яндекс Облако функция запускается тогда, когда ей есть что делать, и исчезает, когда свободна. Не нужно следить за серверами, раскатывать обновления на железо, где никто толком не понимает, что живет. Просто код и события, ка
Оглавление
   Использование Yandex Cloud Functions для реализации нестандартной логики Артур Хорошев
Использование Yandex Cloud Functions для реализации нестандартной логики Артур Хорошев

Серверлесс: как использовать Yandex Cloud Functions для нестандартной логики

Был у меня вечер, похожий на все остальные: чай с лимоном, вкладки с документацией, руки тянутся склеить пару сервисов для клиента, а нужен всего лишь небольшой крючок между CRM, сайтом и Telegram. Маленькая, крохотная функция на 15 строк, которая должна принять вебхук, подкрутить логику, дернуть пару API и не падать от капризов трафика. Настраивать сервер ради этого вобще смешно, и тут включается серверлесс. Достаю Yandex Cloud Functions, подкидываю код, даю триггеру URL и смотрю, как всё шевелится. И, честно говоря, каждый раз радуюсь, как будто нашел пульт от телевизора в кармане зимней куртки в мае.

Если вы приходите из мира Make.com, 1С или Bitrix24, хотите автоматизировать туда сюда без подъемов виртуалок и плясок, серверлесс ощущается как легальный чит-код. Яндекс Облако функция запускается тогда, когда ей есть что делать, и исчезает, когда свободна. Не нужно следить за серверами, раскатывать обновления на железо, где никто толком не понимает, что живет. Просто код и события, как будто пазл без лишних деталей.

Что такое серверлесс по делу и почему это не магия

Серверлесс в нормальном, человеческом смысле означает, что вы запускаете свой код без забот о серверах. В Yandex Cloud Functions вы загружаете функцию на Python, Node.js, Java или Kotlin, задаете таймаут, память, окружение, и получаете URL или привязываете триггер. Вызвали функцию HTTP запросом, она отработала и снялась с трассы. Хранение состояния выносится наружу, логи лежат в логах, версии кода аккуратно переключаются. И да, это работает на русском облаке, с опорой на инфраструктуру Яндекса, что для многих проектов в России критично и удобно. В текстах и настройках встретите формулировку яндекс облако функция, по сути это один и тот же зверь из сервиса Functions, просто называть можно по разному.

То, что обычно называют триггером, тут тоже есть. Функции ловят HTTP, S3 совместимое хранилище, очереди, расписание по крону. Если нужно аккуратно встроиться в цепочку Make.com, используйте HTTP триггер: это самый быстрый способ заставить вашу нестандартную логику жить в облаке, а не в блокноте с TODO.

Зачем это владельцам процессов, маркетологам и автоматизаторам

Посудите сами. В Make.com вы делаете связки из сервисов и модулей, и почти всегда хватает готовых блоков. Но всегда найдется один сервис с чудным API или хитрой подписью запроса, который в стандартные модули не лезет. Или нужна проверка, которую нельзя собрать кубиками: свой алгоритм валидации адреса, тонкая логика скидок, сведение чека после оплаты клиента с его прошлым заказом, селектор менеджера по хитрым правилам. Вот тут серверлесс и выручает. Яндекс Облако функция делает то, что не умеет никакой коннектор, и делает быстро. Снаружи вы видите обычный URL, а внутри у вас и подпись HMAC для платежей, и кастомные трансформации JSON, и интеграции с внутренними сервисами.

Соцсети? Telegram бот? Да пожалуйста. Делаете вебхук бота на функцию, проверяете подпись, приводите вход в чистый вид, отдаете Make.com на разветвление. Или наоборот: сценарий в make.com дергает функцию, чтобы добить сложную часть вычислений, которую не хочется держать в модуле JavaScript прямо в сценарии. В результате всё летает, а вы не держите локальную машину включенной ночью, чтоб не сорвалась отправка заказов в 02:17.

-2

Как поженить Yandex Cloud Functions и Make.com без страданий

Первый путь простой и чаще всего самый понятный. Вы поднимаете функцию в Yandex Cloud, включаете публичный HTTP триггер, добавляете нужные переменные окружения, а затем в Make.com берете модуль HTTP и делаете POST на URL вашей функции. Передаете тело JSON, заголовки, токены. Функция работает как «кузница смысла»: нормализует поля, подписывает запросы, общается с капризными API, возвращает аккуратный ответ. Make.com получает чистые данные и едет дальше по сценарию, до CRM, таблиц, почты или еще чего у вас там в хозяйстве.

Второй путь обратный. Ставите в Make.com модуль Webhooks, получаете адрес, а в функции дергаете этот адрес тогда, когда у вас в облаке происходит событие. Например, файл долетел в Object Storage, функция поймала событие, распаковала метаданные и позвала вебхук Make.com. Зачем так? Чтобы не тянуть все события в Make, особенно если их много. Пропускаете их через функцию, где отрезаете лишнее, добавляете подпись, проверяете соответствие схеме и только после этого зовете сценарий. Экономнее и спокойнее, особенно на больших потоках.

Секьюрность решается трезво и без шаманства. Токены храните в переменных окружения функции, в Make.com кладете секреты в поля, которые не логируются, плюс прокидываете заголовок подписи. Простой прием с HMAC: берете тело запроса, подписываете секретом, а в Make.com проверяете подпись тем же секретом в первом модуле. Такой барьер перехватывает лишнее еще до того, как сценарий начал крутиться. И да, логи функции в Yandex Cloud читабельные, по ним удобно ловить хвосты ошибок, когда что то идет не туда.

Код и язык, на чем писать

Если вы из Python, берите его. На Node.js тоже хорошо, особенно когда нужно много работать со строками и JSON. Яндекс Облако функция хранит зависимости в архиве или тянет из пакетов, это задается при деплое. Версии переключаются без боли, можно держать стабильную и новую рядом, щелкать между ними. Время выполнения и объем памяти настраиваются, если делать аккуратно, счет не улетит в облака. Небольшой секрет: старайтесь держать функцию компактной и без тяжелых библиотек, иначе холодный старт слегка бодрит нервную систему.

Мини кейсы, которые легко отбивают время

Один магазин мучился с акциями. В CRM скидочные правила не умещались ни в один модуль, потому что зависели от города, склада, сезона и активности клиента в рассылке. Сделали тонкий калькулятор в функции: входные данные приводятся к нормальному виду, правила лежат в словаре, расчет отдает чистую математику и пару флагов. Make.com получает ответ и дальше рассылает уведомления, обновляет сделку, пишет комментарий менеджеру. Итог простой: скидки перестали быть лотереей, а проседания маржи ушли, ну почти.

Другой сценарий с Telegram. Крупным буквами прилетает текст от пользователя, а в ответ нужно подтянуть его заказы, проверить номер, спросить еще один параметр и выбрать канал обслуживания. Функция проверяет, что это человек, а не оптимистичный бот, склеивает данные из одного внешнего сервиса, подписывает запросы и только после этого зовет Make.com для разветвления. В логике сценария нет лишнего мусора, всё прозрачнее, а скорость стала человеческой.

-3

Практические мелочи, о которых обычно вспоминают, когда уже поздно

Следите за холодными стартами. Если у вас функция просыпается раз в час, а SLA важен, подкиньте легкий крон пинг из того же облака или из Make.com. На продакшене используйте идемпотентность, это слово не страшное: кладите в заголовок уникальный ключ запроса и в функции проверяйте, не видели ли уже этот ключ. Тогда повторный вызов не создаст второй платеж или заказ. Лимиты по времени и памяти лучше поставить с запасом, но не гигантским. Если ваш код грузит трех китов и пять слонов при каждом вызове, разбейте на две функции, спите спокойнее.

Логи и трассировка экономят жизнь. В Yandex Cloud удобно включить уровни логгирования и держать корреляционный ID запроса, который прокидываете из Make.com. Когда менеджер пишет «в 11:43 всё упало, у клиента день рождения», вы открываете логи и находите тот самый вызов без археологии. Версионирование функций пригодится в момент, когда заказчик попросит «вернуть, как было вчера». У Functions есть ручки для этого, переключение по кнопке. И да, держите тестовую среду, даже если это просто копия функции с префиксом -dev и отдельным сценарием в Make.com.

Сколько это стоит и где грань здравого смысла

Серверлесс оплачивается за время выполнения и объем памяти, плюс немного за вызовы. Для маленьких и средних задач это звучит приятно. Если код делает свою работу за 100-300 миллисекунд и памяти нужно 128-256 МБ, счет выйдет скромный. Выстрелы в ногу случаются, когда кто то пытается учить нейросеть прямо в функции или тащит библиотеку на 200 МБ, ну вы поняли. Для тяжелых вещей лучше вынести часть логики в сервис, а функцию оставить тонким прослоенным контроллером. Так и управление проще, и деньги целее.

Где учиться, чтобы не наступать на чужие грабли

Если услуги и продукты крутятся вокруг Make.com, рекомендую начать с платформы и сразу держать в голове связку с функциями. Зарегистрироваться можно по ссылке make.com, там же посмотрите готовые интеграции и вебхуки. Я собрал практические разборы, где сценарии дружат с функциями: от подписей HMAC до прокачанной работы с Telegram и CRM. Вот два понятных шага без воды: Обучение по make.com для уверенного старта и Блюпринты по make.com для ускорения, когда нужно не изобретать велосипед, а ехать. Нужны живые кейсы и подсказки день за днем – есть канал с примерами, лайфхаками и новостями сервисов: Хотите научиться автоматизации рабочих процессов с помощью сервиса make.com и нейросетей ? Подпишитесь на наш Telegram-канал. Иногда я там собираю разборы по Yandex Cloud Functions и делюсь болями, чтобы вам было легче.

-4

Шаблон связки для быстрых стартов

Сценарий, который нормально ложится на большинство задач, выглядит так. Входное событие падает в Yandex Cloud Function. В функции есть слой проверок: чистим и валидируем вход, прикручиваем подпись, сортируем ключи, отбиваем шальные попытки. Затем код решает нестандартную часть – то, ради чего весь карнавал: редкая трансформация, нестандартный расчет, собственная бизнес логика. После этого результат уходит в сценарий make.com, где уже лежат удобные коннекторы к российским CRM, мессенджерам, облачным таблицам и почте. Ошибки логируются, ответ клиенту формируется аккуратно и быстро, а в случае аварии срабатывает повтор через минуту. В 90 процентах случаев такой подход закрывает потребности на годы вперед, а в оставшиеся 10 помогает ровно настолько, чтобы спокойно спать.

FAQ

Можно ли обойтись без прямого HTTP вызова функции из Make.com

Можно. Функция может сама вызывать вебхук Make.com, а Make уже будет тянуть остальной процесс. Это удобно, когда события рождаются в облаке Яндекса и вы хотите фильтровать поток до входа в сценарий.

Как хранить секреты и токены, чтобы их не увидел лишний человек

Кладите секреты в переменные окружения функции и используйте заголовки для передач между системами. В Make.com скрывайте поля с токенами и включайте проверку подписи в первом модуле. В логах не пишите токены в явном виде, только хвосты и маски.

Что делать с холодными стартами и задержками

Если функция простаивает, первый вызов может запуститься чуть медленнее. Решение простое: легкий пинг по расписанию или разделение тяжелых зависимостей на несколько маленьких функций. Еще помогает уменьшить размер пакета и держать код без лишнего хлама.

Как тестировать функцию, если основной поток идет через Make.com

Сделайте локальные примеры тел запросов и держите отдельный dev сценарий. Прокидывайте корреляционный ID через заголовки, записывайте его в логи функции и в Make.com. Тогда каждый вызов можно отследить от входа до выхода без шаманских плясок.

Поддерживает ли Yandex Cloud Functions Python и Node.js

Да, поддерживаются Python, Node.js, Java, Kotlin и другие языки. Для 80 процентов задач хватает Python и Node.js, особенно если вы упираетесь в JSON, вебхуки и аккуратные трансформации.

Если мне нужно быстро стартовать и не ковыряться неделями, что почитать и где смотреть примеры

Для старта и практики есть курс и готовые схемы: Обучение по make.com и Блюпринты по make.com. Регистрация на платформе тут make.com, а живые обновления и подсказки публикую в канале: Telegram.