הבנת ההבדלים בין אפשרויות הפריסה של פונקציות ב- Google Cloudתעזור לכם להעביר עומסי עבודה מ-Cloud Functions API ל-Cloud Run Admin API. במסמך הזה מפורטים ההבדלים העיקריים בין המושגים, ההגדרות, הפריסה, הטריגרים והניסיונות החוזרים.
השוואה
יש שתי גרסאות של פונקציות Cloud Run:
פונקציות Cloud Run הן הגרסה העדכנית של הפונקציות, שנפרסות כשירות ב-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 (דור ראשון), שנקראו בעבר Cloud Functions (דור ראשון), הן הגרסה המקורית של פונקציות עם טריגרים מוגבלים של אירועים, סביבות זמן ריצה ואפשרויות הגדרה. איך משדרגים פונקציות מהדור הראשון ל-Cloud Run
כשפורסים פונקציות ישירות ב-Cloud Run, הן נוצרות באופן אוטומטי כקונטיינרים ונפרסות כשירות Cloud Run.
מושגים
בטבלה הבאה מפורטים ההבדלים המושגיים בין הפונקציות.
| פונקציות Cloud Run | פונקציות Cloud Run (דור ראשון) | |
|---|---|---|
| שם המוצר הקודם | Cloud Functions (דור שני) | Cloud Functions (דור ראשון) |
| מודל של משאבים | פונקציה היא שירות Cloud Run שנפרס מקוד מקור | פריסת פונקציה מקוד מקור |
| טרמינולוגיה של סוגי פונקציות |
|
|
| כתובת ה-URL מסוג HTTPS שהוקצתה | לפונקציות שנוצרו באמצעות Cloud Functions v2 API יש גם נקודת קצה (endpoint) של cloudfunctions.net. |
cloudfunctions.net |
| מאגר תמונות | Artifact Registry בלבד | Artifact Registry או Container Registry (הוצא משימוש) |
| תפקידי IAM לפריסה |
|
|
| תשתית פנימית | Cloud Run | פנימי ל-Google |
| מודל התמחור | התמחור של Cloud Run | המחירון של פונקציות Cloud Run (דור ראשון) |
הגדרות אישיות
ב-Cloud Run, הפונקציות נוצרות בקונטיינרים ונפרסות כשירותים. כשפורסים פונקציה ב-Cloud Run, יש לכם גישה מלאה לפונקציה ושליטה מלאה בהתנהגות שלה. לדוגמה, אתם יכולים להפעיל Direct VPC, להגדיר GPUs, להשתמש בנפחי אחסון ועוד.
בטבלה הבאה מפורטים ההבדלים בהגדרות של הפונקציות:
| פונקציות Cloud Run | פונקציות Cloud Run (דור ראשון) | |
|---|---|---|
| משך הבקשה הסתיים |
|
|
| גודל המכונה | עד 16GiB RAM עם 4 vCPU | עד 8GB RAM עם 2 vCPU |
| בו-זמניות (concurrency) | עד 1,000 בקשות מקבילות לכל מופע של פונקציה | בקשה מקבילה אחת לכל מופע של פונקציה |
| חלוקת התנועה | נתמך | לא נתמך |
פריסה
מאוגוסט 2024, אתם יכולים להשתמש ב-Cloud Run כדי לפרוס ולנהל פונקציות שנוצרו באמצעות Cloud Functions v2 API. כתוצאה מהשינוי הזה:
- המטא-נתונים של הפונקציה, כמו מזהה זמן הריצה והגדרות ה-build, מאוחסנים בהגדרה של שירות 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 v2 API. אם אתם צריכים לפרוס את הפונקציה באמצעות Cloud Functions v2 API (לדוגמה, לצורך תאימות לדורות קודמים), אתם יכולים לעשות את זה באופן הבא:
מוודאים שיש לכם את התפקיד מפתח Cloud Functions ב-IAM או תפקיד שכולל את אותן הרשאות. אפשר גם לעיין במאמר הגדרות נוספות לפריסה.
משתמשים בפקודה
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. כדאי לעשות את זה אם עומסי העבודה צריכים להישאר בגבולות ה-API של run.googleapis.com בשביל Assured Workloads, או כדי לוודא שעומסי העבודה משתמשים במק"ט של Cloud Run.
מידע נוסף זמין במאמר ניהול פונקציות.
המאמרים הבאים
- נסו את המדריך לתחילת הדרך בנושא פריסת פונקציית Cloud Run.