Розробка Serverless Functions для сайту (Netlify Functions)

Ваш JAMstack backend сайт розростається, і пора додати серверну логіку без виділеного бекенду. Netlify Functions (також відомі як Netlify Lambda функції) — безсерверні функції, які деплояться разом із фронтендом за хвилини. Достатньо створити файл у `netlify/functions/`, і функція готова до роботи.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Розробка Serverless Functions для сайту (Netlify Functions)
Простий
~2-3 дні

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1418
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    983
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1243
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    997

Ваш JAMstack backend сайт розростається, і пора додати серверну логіку без виділеного бекенду. Netlify Functions (також відомі як Netlify Lambda функції) — безсерверні функції, які деплояться разом із фронтендом за хвилини. Достатньо створити файл у netlify/functions/, і функція готова до роботи. Типова проблема: контактна форма на статиці не відправляє дані, або потрібно обробляти вебхуки від зовнішніх сервісів. Замість підняття окремого сервера ми використовуємо Netlify Functions. Вартість інфраструктури практично нульова, а автоматичне масштабування знімає головний біль. Ми пишемо serverless-функції для Netlify з моменту появи платформи. За цей час реалізували понад 50 функцій для 15 проектів: прийом форм, генерація PDF, webhook-інтеграції з CRM та платіжними системами. Наші інженери сертифіковані за JAMstack, гарантуємо стабільну роботу функцій під навантаженням 1000+ запитів на хвилину. Вартість розробки базової функції — від $200, економія на інфраструктурі до 70%. Netlify Functions у 5 разів кращі за традиційний бекенд за часом розгортання та масштабуванням.

Два типи функцій

Sync Functions — стандартний request/response. Підтримують Node.js 18+, Go, Rust. Таймаут 10 секунд (безкоштовно) / 26 секунд (Pro).

Background Functions — для довгих задач (до 15 хвилин). Негайно повертають 202 Accepted, виконання продовжується у фоні. Ім'я файлу: *.mts або *-background.ts.

Параметр Sync Function Background Function
Час виконання до 10/26 сек до 15 хв
Відповідь клієнту після виконання одразу 202 Accepted
Типове використання API, вебхуки, форми Генерація PDF, обробка даних, відправка листів

Як вибрати між Sync і Background Functions? Netlify Forms vs Functions: коли що вибрати?

Сценарій Тип функції
Обробка форми зворотного зв'язку Sync
Генерація PDF-звіту Background
Webhook від платіжної системи Sync
Масова розсилка листів Background
API для фронтенду (CRUD) Sync
Обробка зображень Background

Переваги та прискорення розробки

Netlify Functions розгортаються в 3-5 разів швидше, ніж окремий сервер на AWS EC2. Вам не потрібно керувати інфраструктурою: масштабування, патчі безпеки та балансування відбуваються автоматично. Це знижує витрати на адміністрування в 2-3 рази. Інтеграція з Git-репозиторієм дозволяє деплоїти функції разом із фронтендом — одна команда git push. Не потрібно налаштовувати CI/CD окремо. Локальна розробка через netlify dev імітує продакшен-середовище. Холодний старт можна зменшити за допомогою esbuild-бандлінгу та налаштування Warm Functions на плані Pro. Завдяки оптимізації холодний старт зменшено на 80%, понад 95% запитів обробляються за <100 мс.

Як оптимізувати холодний старт?

Холодний старт — затримка при першому виклику функції, коли середовище виконання ще не готове. У Netlify Functions за замовчуванням він становить 200–500 мс. Щоб знизити його до 50–100 мс, використовуйте esbuild для бандлінгу (він об'єднує залежності в один файл) і обирайте план Pro, де доступна функція Warm Functions, що підтримує функції «теплими». Також уникайте монолітних залежностей: імпортуйте лише потрібні модулі.

Типові помилки при розробці Netlify Functions - Ігнорування холодного старту: тестуйте функції з прогрітим середовищем. - Відсутність обробки помилок: завжди повертайте коректний HTTP-статус. - Невикористання змінних середовища: зберігайте ключі в `.env`, а не в коді. - Забувають про ліміти: таймаут 10 сек для Sync, 15 хв для Background.

Приклад Netlify функції: Sync Function для контактної форми

Файл netlify/functions/contact.ts:

import type { Handler, HandlerEvent } from "@netlify/functions"; export const handler: Handler = async (event: HandlerEvent) => { if (event.httpMethod !== "POST") { return { statusCode: 405, body: "Method Not Allowed" }; } const data = JSON.parse(event.body || "{}"); const { name, email, message } = data; // Відправка через Netlify Email Integration або зовнішній API await fetch("https://api.sendgrid.com/v3/mail/send", { method: "POST", headers: { Authorization: `Bearer ${process.env.SENDGRID_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ personalizations: [{ to: [{ email: "[email protected]" }] }], from: { email: "[email protected]" }, subject: `Повідомлення від ${name}`, content: [{ type: "text/plain", value: `${name} (${email}): ${message}` }], }), }); return { statusCode: 200, headers: { "Content-Type": "application/json" }, body: JSON.stringify({ ok: true }), }; }; 

Функція доступна за /.netlify/functions/contact або через redirect. Наприклад, використовуючи netlify.toml: редирект з /api/contact на /.netlify/functions/contact. Це типова Netlify контактна форма.

Background Function для звітів

// netlify/functions/generate-report-background.ts import type { BackgroundHandler } from "@netlify/functions"; export const handler: BackgroundHandler = async (event) => { const { reportId } = JSON.parse(event.body || "{}"); // Довга операція: генерація PDF, обробка даних const pdf = await generatePDFReport(reportId); // Зберігаємо в S3 і повідомляємо користувача await uploadToS3(pdf, `reports/${reportId}.pdf`); await notifyUser(reportId); }; 

Конфігурація netlify.toml

[build] command = "npm run build" publish = "dist" functions = "netlify/functions" [functions] node_bundler = "esbuild" included_files = ["templates/**"] [dev] command = "npm run dev" port = 8888 

node_bundler = "esbuild" прискорює збірку і зменшує розмір бандла на 40% у порівнянні з zip-архівом.

Змінні середовища

Netlify Dashboard → Site Settings → Environment variables. Для локальної розробки — файл .env:

SENDGRID_API_KEY=SG.xxx DATABASE_URL=postgresql://... 

Процес роботи та обсяг послуг

Ви замовляєте Netlify функції під ключ — отримуєте готовий код, конфігурацію та деплой. Ми виконуємо повний цикл розробки serverless-функцій:

  1. Аналітика — визначення необхідних функцій, їх сигнатур та інтеграцій.
  2. Проектування — архітектура, вибір типів функцій, оптимізація холодного старту.
  3. Реалізація — написання коду з використанням esbuild для бандлінгу.
  4. Тестування — локальний запуск через netlify dev, перевірка граничних випадків.
  5. Деплой — налаштування автоматичного розгортання через Git.

Що входить в роботу

  • Код функцій з обробкою помилок та логуванням
  • Конфігурація netlify.toml та редиректів
  • Налаштування змінних середовища
  • Тестування функцій локально та в продакшені
  • Документація щодо виклику та розгортання
  • Підтримка 30 днів після здачі проекту

Строки

Базові функції (форма, вебхук) з налаштуванням редиректів — 1–2 дні. Складні інтеграції (генерація PDF, зовнішні API) — від 3 днів.

Замовте розробку serverless-функцій для вашого проекту — отримайте консультацію з архітектури та деплою. Зв'яжіться з нами, щоб обговорити вашу serverless-архітектуру. Отримайте консультацію з оптимізації функцій під ваш проект.

Офіційна документація Netlify Functions.