במדריך הזה מוצגת השוואה בין האפשרויות האחרונות והמקוריות Google Cloud לפריסת פונקציות. הדף הזה מיועד למי שיצרו בעבר פונקציות באמצעות Cloud Functions API ועוברים ל-Cloud Run Admin API. בדף הזה מתוארים הבדלים עיקריים בכמה תחומים, כמו מושגים, הגדרה, פריסה, טריגרים וניסיונות חוזרים.
השוואה
יש שני סוגים של פונקציות Cloud Run:
Cloud Run functions היא הגרסה העדכנית ביותר של פונקציות, שנפרסות כשירות ב-Cloud Run. אפשר ליצור אותם באחת מהדרכים הבאות:
- Cloud Run Admin API (מומלץ): אפשר לנהל פונקציות שנוצרו באמצעות ה-API הזה (לדוגמה, באמצעותGoogle Cloud מסוף,
gcloud run, API בארכיטקטורת REST או Terraform) באופן בלעדי באמצעות Cloud Run Admin API. - Cloud Functions v2 API: אפשר לנהל פונקציות שנוצרו באמצעות ה-API הזה (לדוגמה, באמצעות
gcloud functions, REST API או Terraform) גם באמצעות Cloud Run Admin API וגם באמצעות Cloud Functions v2 API. כשמשתמשים ב-API הזה, מציינים את הטריגר כשפורסים את הפונקציה. כאן תוכלו לקרוא על ניתוק פונקציית API בגרסה 2 כדי שאפשר יהיה לנהל אותה באופן בלעדי באמצעות Cloud Run Admin API.
- Cloud Run Admin API (מומלץ): אפשר לנהל פונקציות שנוצרו באמצעות ה-API הזה (לדוגמה, באמצעותGoogle Cloud מסוף,
Cloud Run functions (דור ראשון), שנקרא בעבר Cloud Functions (דור ראשון), הוא הגרסה המקורית של פונקציות עם טריגרים מוגבלים לאירועים, סביבות זמן ריצה ואפשרויות הגדרה. איך משדרגים פונקציות מהדור הראשון ל-Cloud Run
כשפורסים פונקציות ישירות ב-Cloud Run, הפונקציות נבנות אוטומטית כקונטיינרים ונפרסות כשירות Cloud Run.
מושגים
בטבלה הבאה מסוכמים ההבדלים המושגיים בפונקציות.
| פונקציות Cloud Run | פונקציות Cloud Run (דור ראשון) | |
|---|---|---|
| שם המוצר הקודם | Cloud Functions (דור שני) | Cloud Functions (דור ראשון) |
| מודל של משאבים | פונקציה היא שירות Cloud Run שנפרס מקוד מקור | פונקציה נפרסת מקוד מקור |
| טרמינולוגיה של סוגי פונקציות |
|
|
| כתובת URL מסוג HTTPS שהוקצתה | run.appלפונקציות שנוצרו באמצעות Cloud Functions v2 API יש גם נקודת קצה cloudfunctions.net. |
cloudfunctions.net |
| מאגר תמונות | Artifact Registry בלבד | Artifact Registry או Container Registry (הוצא משימוש) |
| תפקידי IAM לפריסה |
|
|
| תשתית פנימית | Cloud Run | פנימי ל-Google |
| מודל התמחור | תמחור ב-Cloud Run | המחירון של פונקציות Cloud Run (דור ראשון) |
הגדרות אישיות
Cloud Run בונה פונקציות בקונטיינרים ופורס אותן כשירותים. כשפורסים פונקציה ב-Cloud Run, יש לכם גישה מלאה להתנהגות של הפונקציה ושליטה בה. לדוגמה, אתם יכולים להפעיל Direct VPC, להגדיר GPU, להשתמש ב-volume mounts ועוד.
בטבלה הבאה מסוכמים ההבדלים בהגדרות של פונקציות:
| פונקציות Cloud Run | פונקציות Cloud Run (דור ראשון) | |
|---|---|---|
| משך הבקשה הסתיים |
|
|
| גודל המכונה | עד 16 GiB RAM עם 4 vCPU | עד 8 GB RAM עם 2 vCPU |
| בו-זמניות (concurrency) | עד 1,000 בקשות מקבילות לכל מופע של פונקציה | בקשה מקבילה אחת לכל מופע של פונקציה |
| חלוקת התנועה | נתמך | לא נתמך |
פריסה
החל מאוגוסט 2024, אפשר להשתמש ב-Cloud Run כדי לפרוס ולנהל פונקציות שנוצרו באמצעות Cloud Functions v2 API. כתוצאה מהשינוי הזה:
- מטא-נתונים של פונקציות, כמו מזהה זמן ריצה והגדרות של בנייה, מאוחסנים בהגדרת השירות של Cloud Run.
- אפשר לערוך את הפונקציה בבטחה באמצעות Cloud Run Admin API.
- אתם יכולים להסתמך על הגדרת השירות של Cloud Run כמקור האמת של הפונקציה.
עם זאת, חשוב לזכור שאי אפשר לשנות פונקציות שנוצרו באמצעות Cloud Run Admin API באמצעות Cloud Functions API.
בטבלה הבאה מסוכמים ההבדלים באופן שבו יוצרים, פורסים, עורכים ומנהלים פונקציות:
| פונקציות Cloud Run | פונקציות Cloud Run (דור ראשון) | |
|---|---|---|
| מסוףGoogle Cloud | Cloud Run | פונקציות Cloud Run (דור ראשון) |
| Cloud SDK |
|
|
| API בארכיטקטורת REST |
|
|
| Terraform |
|
פריסת פונקציות שנוצרו באמצעות Cloud Functions v2 API
כמו שמתואר למעלה, אפשר להשתמש בכלים של Cloud Run כדי לפרוס ולנהל פונקציות שנוצרו באמצעות Cloud Functions API v2. אם אתם צריכים לפרוס את הפונקציה באמצעות Cloud Functions v2 API (לדוגמה, לצורך תאימות לאחור), אתם יכולים לעשות זאת באופן הבא:
לוודא שיש לכם תפקיד IAM של מפתח Cloud Functions או תפקיד שכולל את אותן הרשאות. אפשר לעיין גם במאמר הגדרות נוספות לפריסה.
כדי לפרוס פונקציה, משתמשים בפקודה
gcloud functions deploy:gcloud functions deploy YOUR_FUNCTION_NAME \ --region=YOUR_REGION \ --runtime=YOUR_RUNTIME \ --source=YOUR_SOURCE_LOCATION \ --entry-point=YOUR_CODE_ENTRYPOINT \ TRIGGER_FLAGS...
מחליפים את מה שכתוב בשדות הבאים:
YOUR_FUNCTION_NAME: השם של הפונקציה שרוצים לפרוס. שם הפונקציה חייב להתחיל באות ולהמשיך בעד 62 אותיות, מספרים, מקפים או קווים תחתונים, ולהסתיים באות או במספר. שם שירות Cloud Run שנוצר עבור הפונקציה יחליף קווים תחתונים במקפים, ואותיות גדולות יומרו לאותיות קטנות. לדוגמה, השם
function-1יינתן ל-Function_1ב-Cloud Run.YOUR_REGION: Google Cloud האזור שבו רוצים לפרוס את הפונקציה. לדוגמה,
europe-west1.YOUR_RUNTIME: השפה שבה הפונקציה משתמשת. רשימה של סביבות זמן ריצה נתמכות זמינה במאמר בנושא תמיכה בזמן ריצה.
YOUR_SOURCE_LOCATION: המיקום של קוד המקור של הפונקציה.
YOUR_CODE_ENTRYPOINT: נקודת הכניסה לפונקציה בקוד המקור. זה הקוד שיופעל כשהפונקציה תרוץ. הערך של הדגל הזה חייב להיות שם של פונקציה או שם מחלקה מלא שקיים בקוד המקור.
למידע נוסף על הפקודה functions deploy והדגלים שלה, אפשר לעיין במסמכי התיעוד של gcloud functions deploy.
טריגרים וניסיונות חוזרים
בטבלה הבאה מוצגת השוואה בין טריגרים וניסיונות חוזרים לפונקציות:
| פונקציות Cloud Run | פונקציות Cloud Run (דור ראשון) | |
|---|---|---|
| הפעלת פונקציה | אם הפונקציה נוצרה באמצעות Cloud Run Admin API, צריך לציין טריגרים כחלק מהפריסה של הפונקציה במסוף Google Cloud או אחרי פריסת הפונקציה כשמשתמשים ב-CLI של gcloud. בפונקציות שנוצרו באמצעות Cloud Functions v2 API, מציינים את הטריגרים כחלק מפריסת הפונקציה. |
מגדירים טריגרים כחלק מפריסת הפונקציה. |
| סוגי אירועים | תמיכה בכל סוג אירוע שנתמך על ידי Eventarc, כולל יותר מ-90 מקורות אירועים דרך יומני ביקורת ב-Cloud. | תמיכה ישירה באירועים מ-7 מקורות. |
| ניסיונות חוזרים | לפונקציות שנוצרו באמצעות Cloud Run Admin API, צריך לעדכן את מדיניות הניסיון החוזר ב-Eventarc ולהגדיר נושא להודעות ללא מוצא ב-Pub/Sub. בפונקציות שנוצרו באמצעות Cloud Functions v2 API, מציינים ניסיונות חוזרים כחלק מפריסת הפונקציה באמצעות הדגל --retry.
|
מציינים ניסיונות חוזרים כחלק מפריסת הפונקציה באמצעות הדגל --retry. |
ניתוק הפונקציה
אפשר לנתק פונקציות שנוצרו באמצעות Cloud Functions v2 API (לדוגמה, באמצעות gcloud functions, API בארכיטקטורת REST או Terraform) מסביבת ה-API הקיימת שלהן. אחרי שמנתקים פונקציה, אפשר לנהל אותה רק באמצעות Cloud Run Admin API. כדאי לעשות את זה אם עומסי העבודה צריכים להישאר בתוך run.googleapis.comגבולות ה-API של Assured Workloads, או כדי לוודא שעומסי העבודה משתמשים במק"ט של Cloud Run.
מידע נוסף זמין במאמר ניהול פונקציות.
המאמרים הבאים
- מומלץ לנסות את מדריך תחילת העבודה בנושא פריסת פונקציית Cloud Run.