פונקציות Serverless לאתר שלך (Netlify)

אתר ה-JAMstack שלך גדל, וקבצים סטטיים כבר לא מספיקים לטיפול בטפסים, webhooks או אינטגרציות עם שירותים חיצוניים. אנחנו מפתחים פונקציות serverless על Netlify Functions שנפרסות לצד ה-frontend ורצות ללא שרת ייעודי. הצוות שלנו לוקח על עצמו את כל המחזור—מעיצוב ועד יישום ותמיכה מתמשכת—ומספק פתרון אמין וסקלבילי.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
פונקציות Serverless לאתר שלך (Netlify)
פשוט
~2-3 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1502
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1344
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1052
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1306
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1049
  • פיתוח אתר לחברת FIXPER
    פיתוח אתר לחברת FIXPER
    1033

אתר ה-JAMstack שלך גדל, והגיע הזמן להוסיף לוגיקה בצד השרת ללא backend ייעודי. Netlify Functions הם handlers ללא שרת (serverless) שנפרסים לצד ה-frontend שלך תוך דקות. פשוט צור קובץ ב-netlify/functions/ והפונקציה מוכנה. בעיה אופיינית: טופס יצירת קשר באתר סטטי נכשל בשליחת נתונים, או שאתה צריך לטפל ב-webhooks משירותים חיצוניים. במקום להקים שרת נפרד, אנו משתמשים ב-Netlify Functions. עלות התשתית כמעט אפסית, וקנה מידה אוטומטי מסיר כאבי ראש.

אנו כותבים פונקציות serverless עבור Netlify מאז השקת הפלטפורמה. במשך יותר מ-5 שנים, יישמנו 50+ פונקציות עבור 15 פרויקטים: עיבוד טפסים, יצירת PDF, אינטגרציות webhook עם CRM ומערכות תשלום. המהנדסים שלנו מוסמכים ב-JAMstack; אנו מבטיחים ביצועים יציבים של פונקציות תחת עומס של 1000+ בקשות לדקה.

שני סוגי פונקציות

Sync Functions — בקשה/תגובה סטנדרטית. תומכות ב-Node.js 18+, Go, Rust. זמן קצוב (timeout) של 10 שניות (חינם) / 26 שניות (Pro).

Background Functions — למשימות ארוכות טווח (עד 15 דקות). מחזירות מיד 202 Accepted, והביצוע נמשך ברקע. שמות קבצים: *.mts או *-background.ts.

פרמטר Sync Function Background Function
זמן ביצוע עד 10/26 שניות עד 15 דקות
תגובה ללקוח לאחר השלמה מיידית 202 Accepted
שימוש אופייני API, webhooks, טפסים יצירת PDF, עיבוד נתונים, שליחת אימיילים

איך לבחור בין Sync ל-Background Functions?

תרחיש סוג פונקציה
עיבוד טופס יצירת קשר Sync
יצירת דוח PDF Background
Webhook ממערכת תשלום Sync
שליחת אימיילים המונית Background
API ל-frontend (CRUD) Sync
עיבוד תמונות Background

יתרונות ומהירות פיתוח

Netlify Functions נפרסות פי 3-5 מהר יותר מאשר שרת נפרד על AWS EC2. אין צורך לנהל תשתית: קנה מידה, תיקוני אבטחה ואיזון עומסים מתרחשים אוטומטית. זה מפחית עלויות ניהול פי 2-3 (חיסכון של $500–$2000 לחודש בהשוואה לשרת ייעודי). אינטגרציה עם מאגר Git מאפשרת לפרוס פונקציות לצד ה-frontend עם git push אחד — אין צורך להקים pipeline CI/CD נפרד. פיתוח מקומי דרך netlify dev מדמה את סביבת הייצור. ניתן להפחית cold start באמצעות bundling עם esbuild והגדרת Warm Functions בתוכנית Pro.

איך לייעל cold start?

Cold start הוא העיכוב בקריאה הראשונה לפונקציה כאשר סביבת הביצוע אינה מוכנה. ב-Netlify Functions, ברירת המחדל היא 200–500 אלפיות שנייה. כדי להפחית ל-50–100 אלפיות שנייה, השתמש ב-esbuild ל-bundling (הוא מאחד תלויות לקובץ אחד) ובחר בתוכנית Pro עם Warm Functions, ששומרת על הפונקציות חמות. כמו כן, הימנע מתלויות מונוליטיות: ייבא רק את המודולים הדרושים.

טעויות נפוצות בפיתוח Netlify Functions - התעלמות מ-cold start: בדוק פונקציות עם סביבה מחוממת. - ללא טיפול בשגיאות: תמיד החזר קוד סטטוס HTTP נכון. - אי שימוש במשתני סביבה: אחסן מפתחות בקובץ `.env`, לא בקוד. - שכחת מגבלות: זמן קצוב של 10 שניות ל-Sync, 15 דקות ל-Background.

דוגמה לפונקציית Sync

קובץ 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 }),
  };
};

הפונקציה נגישה בכתובת 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 }), }; }; או דרך הפניה (redirect). לדוגמה, באמצעות /.netlify/functions/contact: הפנה את netlify.toml ל-/api/contact.

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

/.netlify/functions/contact מאיץ בניות ומפחית את גודל החבילה ב-40% בהשוואה לארכיון zip.

משתני סביבה

Netlify Dashboard → Site Settings → Environment variables. לפיתוח מקומי, השתמש בקובץ // 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); }; :

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

תהליך עבודה והיקף שירותים

אנו מבצעים את מחזור הפיתוח המלא של פונקציות serverless:

  1. אנליטיקה — הגדרת הפונקציות הנדרשות, החתימות שלהן ואינטגרציות.
  2. עיצוב — ארכיטקטורה, בחירת סוגי פונקציות, אופטימיזציה של cold start.
  3. יישום — קידוד עם bundling של esbuild.
  4. בדיקות — הרצה מקומית דרך [build] command = "npm run build" publish = "dist" functions = "netlify/functions" [functions] node_bundler = "esbuild" included_files = ["templates/**"] [dev] command = "npm run dev" port = 8888 , אימות מקרי קצה.
  5. פריסה — הגדרת פריסה אוטומטית דרך Git.

מה כלול (תוצרים)

  • קוד פונקציות עם טיפול בשגיאות ו-logging
  • node_bundler = "esbuild" והגדרת הפניות (redirects)
  • הגדרת משתני סביבה
  • בדיקות מקומיות וייצור
  • תיעוד קריאה ופריסה
  • גישה למאגר ול-pipeline CI/CD
  • הדרכה של שעה אחת על תחזוקה
  • תמיכה ל-30 יום לאחר מסירת הפרויקט

לוחות זמנים ועלות

פונקציות בסיסיות (טופס, webhook) עם הגדרת הפניות — 1–2 ימים, החל מ-$500. אינטגרציות מורכבות (יצירת PDF, APIs חיצוניים) — מ-3 ימים, החל מ-$1500. צור קשר לייעוץ על הארכיטקטורה ה-serverless שלך.

תיעוד רשמי של Netlify Functions: Netlify Functions overview