פיתוח מקומי
פונקציות Cloud Run תומכות בכמה שיטות להפעלת הפונקציות מחוץ לסביבת הפריסה הרגילה. האפשרות הזו שימושית במיוחד לפיתוח איטרטיבי ולמצבים שבהם רוצים לבדוק את הפונקציה לפני הפריסה.
תרחישים לדוגמה
היכולת להריץ את הפונקציות בלי לפרוס אותן יכולה לפשט את הבדיקות המקומיות, את ההתאמה להגבלות על מיקום הנתונים ואת הפריסות בכמה עננים.
בדיקה מקומית
אם בודקים פונקציה על ידי פריסה מחדש אחרי כל שינוי, צריך לחכות לפריסה בכל פעם. לעומת זאת, בדיקה של הפונקציה ישירות בסביבת הפיתוח יכולה לקצר את מחזור הבדיקות האיטרטיבי.
מידע נוסף על בדיקות זמין במאמר בדיקת פונקציית Cloud Run לפני הפריסה.
הגבלות על מיקום הנתונים
במקרים מסוימים, תקנות או מדיניות עשויות לדרוש שהנתונים יישמרו בגבול גיאוגרפי, ארגוני או רשת מסוים, שאולי לא נגיש לפונקציות של Cloud Run עצמו.
אם פלטפורמה שעומדת בהגבלות שלכם לגבי מיקום הנתונים תואמת לאחת משכבות ההפשטה של פונקציות Cloud Run, תוכלו להריץ את הפונקציות שלכם ישירות בפלטפורמה הזו על גבי אחת מהשכבות האלה.
פריסות מרובות עננים
פריסות של פונקציות בכמה עננים הן דפוס מוכר לצמצום הסיכון להשבתה בסביבות שבהן האמינות היא קריטית. פריסת פונקציות בסביבות שאינן פונקציות Cloud Run עצמן מפחיתה את הסיכון להשבתה לא מתוכננת של האפליקציה.
אפשרויות הטמעה
לפני שמגדירים סביבת אירוח משלכם לפונקציות, צריך לבחור בין שתי אפשרויות מרכזיות:
- באיזו שכבת הפשטה רוצים להשתמש.
- איזה סוג של פונקציה תפעילו.
שכבות הפשטה
פונקציות Cloud Run עצמן משתמשות בארכיטקטורה רב-שכבתית, וחלק גדול ממנה הוא קוד פתוח. רכיבי הקוד הפתוח האלה מאפשרים להריץ קוד שמיועד לפונקציות Cloud Run בפלטפורמות אחרות.
שני רכיבים בארכיטקטורה הזו שאפשר להריץ מחוץ לתשתית של פונקציות Cloud Run הם Functions Framework ו-Functions Emulator. במאמר הזה נסביר מה המטרה של כל אחת מהשכבות האלה ואיך הן משתלבות זו בזו.
בתרשים הזה מוצג הפריסה האופיינית של פונקציות על פונקציות Cloud Run, Cloud Run ופלטפורמות אחרות שמבוססות על קונטיינרים:
סוגי אירועים
יש שני סוגים עיקריים של פונקציות Cloud Run:
אפשר להפעיל פונקציות HTTP באמצעות בקשות HTTP שרירותיות כמו webhooks, ואילו פונקציות מבוססות-אירועים מקבלות אירועים שנוצרו על ידי מוצרים אחרים של Google Cloud Google.
בחירת שכבת הפשטה
אפשר להריץ פונקציות באופן מקומי באמצעות Functions Framework או Functions Emulator.
Functions Framework הוא קבוצה של ספריות קוד פתוח שמשמשות בפונקציות Cloud Run כדי לבטל את ההמרה של בקשות HTTP נכנסות להפעלות פונקציות ספציפיות לשפה. אפשר להשתמש בהם כדי להמיר את הפונקציה לשירות HTTP שניתן להפעלה מקומית.
Functions Emulator משתמש ב-Cloud Native Buildpacks וב-Docker כדי לעטוף שירותי HTTP שנוצרו על ידי Functions Framework וליצור מהם קונטיינרים שאפשר להפעיל, ואז הם מופעלים בארכיטקטורה מבוססת-קונטיינרים של פונקציות Cloud Run.
לשתי האפשרויות יש יתרונות וחסרונות:
- בסביבות שמבוססות על Functions Framework יש בדרך כלל צורך בפחות משאבים
- ב-Functions Framework לא נדרשת תוכנת יצירת קונטיינרים בסיסית (כמו Docker)
- סביבות שמבוססות על Functions Framework דורשות תשתית שפה בסיסית (כמו מנהלי חבילות וזמני ריצה של שפות)
- הכלי Functions Emulator משקף פקודות של סביבת ייצור, כמו קריאה ופריסה.
- האמולטור של Functions מציע רמת דיוק גבוהה לגבי אופן ההפעלה של פונקציות כשפורסים אותן בסביבת ייצור.
הרצת פונקציות באופן מקומי
גם Functions Framework וגם Functions Emulator פועלים על ידי העברת בקשות HTTP לפונקציה.
מידע נוסף על הרצת פונקציות באופן מקומי באמצעות Functions Framework זמין במאמר הרצת Functions Framework.
במאמר הרצת פונקציות באמצעות כלי האמולציה של Functions מוסבר איך להריץ פונקציות באופן מקומי באמצעות כלי האמולציה של Functions.