השוואה בין פונקציות Cloud Run

במדריך הזה מוצגת השוואה בין האפשרויות האחרונות והמקוריות 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 (דור ראשון), שנקראו בעבר Cloud Functions (דור ראשון), הן הגרסה המקורית של פונקציות עם טריגרים מוגבלים לאירועים, סביבות זמן ריצה ואפשרויות הגדרה. איך משדרגים פונקציות מהדור הראשון ל-Cloud Run

כשפורסים פונקציות ישירות ב-Cloud Run, הפונקציות נבנות אוטומטית כקונטיינרים ונפרסות כשירות Cloud Run.

מושגים

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

פונקציות Cloud Run פונקציות Cloud Run (דור ראשון)
שם המוצר הקודם ‫Cloud Functions (דור שני) ‫Cloud Functions (דור ראשון)
מודל של משאבים פונקציה היא שירות Cloud Run שנפרס מקוד מקור פונקציה נפרסת מקוד מקור
מונחים שקשורים לסוגי פונקציות
  • פונקציות HTTP
  • פונקציות CloudEvents, שנקראות גם פונקציות מבוססות-אירועים, נתמכות בכל סביבות זמן הריצה של השפות.
  • פונקציות HTTP
  • רק סביבות זמן ריצה של Ruby,‏ ‎.NET ו-PHP תומכות ב-CloudEvents. בשפות Node.js,‏ Go,‏ Python ו-Java, יוצרים פונקציות מבוססות-אירועים באמצעות פונקציות ברקע.
כתובת 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 (דור ראשון)
משך הבקשה הסתיים
  • עד 60 דקות לפונקציות שמופעלות על ידי HTTP
  • עד 9 דקות לפונקציות מבוססות-אירועים שנוצרו באמצעות Cloud Functions v2 API
  • עד 9 דקות
גודל המכונה עד 16 GiB RAM עם 4 vCPU עד 8 GB RAM עם 2 vCPU
בו-זמניות עד 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
  • gcloud run deploy לפונקציות שנוצרו באמצעות Cloud Run Admin API או Cloud Functions API.
  • gcloud functions deploy לפונקציות שנוצרו באמצעות Cloud Functions API.
API ל-REST
  • run.googleapis.com (גרסה 1 וגרסה 2) לפונקציות שנוצרו באמצעות Cloud Run Admin API או Cloud Functions API.
Terraform

טריגרים וניסיונות חוזרים

בטבלה הבאה מוצגת השוואה בין טריגרים וניסיונות חוזרים לפונקציות:

פונקציות 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. מידע נוסף זמין במאמר בנושא ניהול פונקציות.

המאמרים הבאים