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

במדריך הזה מוצגת השוואה בין האפשרויות האחרונות והמקוריות 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 functions (דור ראשון), שנקרא בעבר 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
בו-זמניות (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
  • 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 Functions v2 API

כמו שמתואר למעלה, אפשר להשתמש בכלים של Cloud Run כדי לפרוס ולנהל פונקציות שנוצרו באמצעות Cloud Functions API v2. אם אתם צריכים לפרוס את הפונקציה באמצעות Cloud Functions v2 API (לדוגמה, לצורך תאימות לאחור), אתם יכולים לעשות זאת באופן הבא:

  1. לוודא שיש לכם תפקיד IAM של מפתח Cloud Functions או תפקיד שכולל את אותן הרשאות. אפשר לעיין גם במאמר הגדרות נוספות לפריסה.

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

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