Skip to main content
אתה צופה בתיעוד למפתחים
תיעוד זה מיועד למפתחים העובדים עם פלטפורמת המפתחים של Base44. למידע על פונקציות בקאנד בעורך האפליקציות, ראהשימוש באינטגרציות.
פונקציות בקאנד מאפשרות לך להריץ קוד בקאנד מותאם בסביבה מאובטחת ומבודדת. השתמש בפונקציות כדי ליישם לוגיקה עסקית שאסור לה לרוץ בדפדפן, להתחבר ל-APIs של צד שלישי עם אישורים מוגנים, לעבד webhooks, או להרחיב את האפליקציה שלך עם נקודות קצה מותאמות. פונקציות בקאנד רצות על Deno, runtime מודרני של TypeScript. קרא לפונקציות מה-frontend שלך באמצעות ה-SDK, שמטפל באימות אוטומטית. לכל פונקציה יש גם נקודת קצה HTTP משלה עבור webhooks ואינטגרציות חיצוניות. פונקציות יכולות גם לרוץ אוטומטית באמצעות automations. תזמן פונקציות לרוץ בזמנים ספציפיים או הפעל אותן בתגובה לאירועי מסד נתונים כמו יצירה, עדכון או מחיקה של רשומות.
שים לב לנקודות הבאות:
  • פריסת פונקציות אחת בכל פעם אינה מוגבלת ל-50. בקשה יחידה שמחליפה את כל הפונקציות בפרויקט שלך עדיין מוגבלת ל-50.
  • לפונקציות בקאנד יש זמן ריצה מקסימלי של 5 דקות, שנאכף באותה דרך בין אם הפונקציה נקראת ישירות, מופעלת על ידי אוטומציה, או נקראת כשלב workflow. בקשות שחורגות מהמגבלה הזו מופסקות.

יצירת פונקציות

צור פונקציות בקאנד כקבצי TypeScript בתיקיית ה-functions של הפרויקט שלך. כברירת מחדל תיקיית ה-functions היא base44/functions/, אבל אתה יכול להתאים את הנתיב בתצורת הפרויקט שלך. כל פונקציה חיה בתיקיית משנה משלה עם קובץ entry.ts או entry.js:
functions
<function-name>
entry.ts
ה-CLI משתמש בנתיב התיקייה יחסית לשורש ה-functions כשם הפונקציה. לדוגמה, functions/sendWelcomeEmail/entry.ts יוצר פונקציה בשם sendWelcomeEmail. אתה יכול גם לקנן פונקציות בתיקיות משנה לארגון. functions/email/send/entry.ts יוצר פונקציה בשם email/send.

הוספת קובץ תצורה

לצרכים מתקדמים כמו שמות פונקציה מותאמים או automations, הוסף קובץ function.jsonc:
functions
<function-name>
entry.ts
function.jsonc
קובץ התצורה מגדיר את שם הפונקציה ואת נקודת הכניסה:

entry.ts

קובץ הקוד מכיל את לוגיקת הפונקציה שלך. פונקציות חייבות להשתמש ב-wrapper של Deno.serve() ולהחזיר אובייקטי Response:

מספר קבצים לכל פונקציה

פונקציה לא מוגבלת לקובץ entry.ts יחיד. פצל את הלוגיקה למספר קבצים בתוך תיקיית הפונקציה, וייבא אותם עם נתיבים יחסיים. כל קובץ .js, .ts, .json ו-.jsonc בתיקיית הפונקציה נפרס יחד איתה.
functions
process-order
entry.ts
validate.ts
types.ts
ייבוא יחסי נפתר בזמן הפריסה. ייבוא שמצביע על קובץ שלא נפרס עם הפונקציה, כמו קובץ בתיקייה של פונקציה אחרת, נכשל בזמן הפריסה.

שיתוף קוד בין פונקציות

כדי לעשות שימוש חוזר בקוד בין פונקציות, מקם אותו בתיקייה shared בתוך התיקייה base44/. כשאתה פורס פונקציה, ה-CLI מעלה איתה את התיקייה shared. השרת מאגד רק את הקבצים המשותפים שהפונקציה מייבאת. כל פונקציה נפרסת עם עותק משלה של הקוד המשותף שהיא משתמשת בו. המשמעות:
  • כל פונקציה יכולה לייבא מ-shared עם נתיב יחסי.
  • פונקציות שונות עשויות להריץ גרסאות שונות של אותו קובץ משותף. שינוי קובץ משותף ופריסה של פונקציה אחת מעדכנים רק את העותק של אותה פונקציה. השאר שומרות על הגרסה הישנה עד שתפרוס אותן מחדש. כדי להחיל שינוי משותף בכל מקום, הרץ base44 functions deploy ללא ארגומנטים. כך כל הפונקציות נפרסות מחדש בבת אחת.
base44
shared
response.ts
functions
greet
entry.ts
farewell
entry.ts
ייבוא יחסי יכול להגיע ל-base44/shared/ אבל לא לצאת מ-base44/. כדי להשתמש בקוד מחוץ ל-base44/, העבר אותו ל-base44/shared/, או ייבא אותו עם מזהה npm: או jsr:.

בדיקה מקומית

הרץ את הפונקציות שלך מקומית עם base44 dev כדי לבדוק שינויים מבלי לפרוס. ראה Local development לפרטים.

פריסת פונקציות

פרוס פונקציות עם functions deploy או deploy כדי לדחוף את כל משאבי הפרויקט בבת אחת. אתה יכול לפרוס פונקציות ספציפיות לפי שם עם functions deploy <names...>, או להשתמש ב---force להסרת פונקציות מרוחקות שלא נמצאו מקומית. כדי להוריד פונקציות מופצות לפרויקט המקומי שלך, השתמש ב-functions pull. כדי לראות מה מופץ כרגע, השתמש ב-functions list.

קריאה לפונקציות

קרא לפונקציות בקאנד מה-frontend שלך באמצעות ה-SDK, או דרך HTTP עבור webhooks ואינטגרציות חיצוניות.

דרך ה-SDK

השתמש ב-base44.functions.invoke() כדי לקרוא לפונקציות מה-frontend שלך. ה-SDK מטפל באימות אוטומטית, ומעביר את אישורי המשתמש הנוכחי לפונקציה שלך.

דרך HTTP

לכל פונקציה מופצת יש נקודת קצה HTTP בכתובת:
זה שימושי עבור:
  • Webhooks: קבל callbacks משירותים חיצוניים כמו Stripe או GitHub.
  • אינטגרציות חיצוניות: אפשר למערכות אחרות לתקשר עם האפליקציה שלך.
  • בדיקות: קרא לפונקציות ישירות עם כלים כמו cURL או Postman.
דוגמת שימוש
בעת קריאה לפונקציות דרך HTTP ישיר (כמו cURL או webhooks), אין הקשר משתמש מאומת. השתמש ב-asServiceRole עבור כל הפעולות במקרים אלה.

שימוש ב-SDK בפונקציות

בתוך פונקציות הבקאנד שלך, אתה יכול לגשת לנתונים, אימות ואינטגרציות של האפליקציה דרך Base44 SDK. השתמש ב-createClientFromRequest() כדי ליצור client מהבקשה הנכנסת. הקשר האימות תלוי באופן שבו הפונקציה נקראה:
  • כאשר נקראה דרך ה-SDK מה-frontend שלך: האימות של המשתמש מועבר אוטומטית. אתה יכול לגשת למשתמש הנוכחי עם base44.auth.me() ולבצע פעולות עם ההרשאות שלו. לפעולות ברמת admin, השתמש ב-asServiceRole.
  • כאשר נקראה דרך HTTP ישיר (cURL, webhooks, שירותים חיצוניים): אין משתמש מאומת, אז השתמש ב-asServiceRole עבור כל הפעולות.

Runtime API

Base44 מספקת מודול מובנה base44:runtime עם כלי פלטפורמה לפונקציות שלך. ייבא אותו ישירות, ללא התקנה:
המודול מייצא שני כלים:
  • waitUntil(): שומר את הפונקציה פעילה כדי לסיים עבודת רקע אחרי שהחזרת תגובה.
  • secrets: קורא את ה-secrets של האפליקציה בזמן ריצה עם secrets.get().

הרצת עבודת רקע אחרי התגובה

השתמש ב-waitUntil() כדי לשמור את הפונקציה פעילה לעבודת רקע אחרי שהחזרת תגובה. העבר לה promise, והפונקציה תמשיך לרוץ עד שה-promise יסתיים. כך תוכל להגיב מהר ולסיים אחר כך עבודה כמו רישום לוגים, התראות או webhooks יוצאים.
waitUntil() מחזירה את אותו promise שהעברת. לכן תוכל להרכיב אותו או להמתין לו בהמשך אותו handler.
עבודת רקע מתבצעת במאמץ מיטבי. אין הבטחה שתסתיים או שתנוסה שוב. אל תסתמך עליה לפעולות קריטיות שאסור שיאבדו.

קריאת secrets

השתמש ב-secrets.get() כדי לקרוא את משתני הסביבה של האפליקציה בזמן ריצה. היא מחזירה את הערך כמחרוזת, או undefined כשה-secret לא מוגדר:
קרא ל-secrets.get() בתוך ה-handler, ולא ברמה העליונה של המודול. ה-secrets נפתרים לכל בקשה בנפרד. לכן קריאה בזמן טעינת המודול, לפני שבקשה כלשהי רצה, מחזירה undefined. הגדר secrets מה-CLI עם secrets set.

חיבור ל-APIs של צד שלישי

פונקציות בקאנד הן אחת מכמה דרכים להתחבר ל-APIs של צד שלישי. הן אידיאליות כאשר אתה צריך שליטה מלאה על בקשות או רוצה לאחסן API keys באופן מאובטח כמשתני סביבה. השתמש ב-secrets set להגדרת משתני סביבה מה-CLI.

צפייה בלוגים

במהלך פיתוח מקומי, פלט הפונקציה מודפס ישירות ל-terminal שלך ללא צורך בפקודת logs. עבור פונקציות מופצות, צפה בלוגים עם פקודת logs. הלוגים כוללים פלט console, שגיאות ומידע על תזמון. אתה יכול לסנן לפי שם פונקציה או טווח זמן. אם אתה משתמש בסוכן קידוד AI, ה-base44-troubleshooter skill יכול לשלוף ולנתח את הלוגים האלה אוטומטית.

TypeScript types

ייצר TypeScript types מתצורות הפונקציה שלך כדי לקבל בטיחות סוגים ו-autocomplete עבור שמות פונקציות בקוד ה-SDK שלך. למד עוד על dynamic types.

ראה גם

  • Automations: תזמן פונקציות או הפעל אותן באירועי מסד נתונים
  • functions module: סימוכין SDK להפעלת פונקציות
  • createClientFromRequest: יצירת client בפונקציות בקאנד
  • functions deploy: פרוס פונקציות מקומיות ל-Base44
  • functions pull: הורד פונקציות מופצות לפרויקט המקומי שלך
  • functions list: רשימת כל הפונקציות המופצות
  • functions delete: מחק פונקציות מופצות
  • logs: צפה בלוגי פונקציות
  • exec: בדוק פונקציות בבידוד מסקריפטים עצמאיים
דף זה תורגם באמצעות AI. למידע המדויק והעדכני ביותר, עיין בגרסה האנגלית.