פריסת פונקציה

במדריך הזה מוסבר איך לפרוס פונקציה מקוד מקור באמצעות הפקודה gcloud functions. במאמר פריסת פונקציית Cloud Run באמצעות ה-CLI של gcloud מוסבר איך לפרוס פונקציה באמצעות הפקודה gcloud run.

במהלך תהליך הפריסה, קוד המקור והגדרות התצורה שלכם מגובים לקובץ אימג' שאפשר להריץ, ופונקציות Cloud Run מנהלות אותו באופן אוטומטי כדי לטפל בבקשות לפונקציה.

היסודות של פריסה

למידע על סוגי הפונקציות שאפשר לפרוס, אפשר לעיין במאמר בנושא כתיבת פונקציות Cloud Run.

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

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  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.

    • הדגל --region מציין את האזור שבו הפונקציה תופעל. במאמר מיקומים מופיעה רשימה של האזורים שנתמכים על ידי Cloud Run.

    • הדגל --runtime מציין באיזו שפת זמן ריצה הפונקציה משתמשת. רשימת מזהי זמן הריצה הנתמכים מופיעה במאמר בנושא תמיכה בזמן ריצה.

    • הדגל --source מציין את המיקום של קוד המקור של הפונקציה.

    • הדגל --entry-point מציין את נקודת הכניסה לפונקציה בקוד המקור. זה הקוד שיופעל כשהפונקציה תפעל. הערך של הדגל הזה חייב להיות שם של פונקציה או שם מחלקה מלא שקיים בקוד המקור. מידע נוסף זמין במאמר בנושא נקודת כניסה לפונקציה.

    • כדי לציין את הטריגר של הפונקציה, צריך להשתמש בדגלים נוספים (שמסומנים כ-TRIGGER_FLAGS למעלה), בהתאם לטריגר שרוצים להשתמש בו:

      דגלי טריגר תיאור הטריגר
      --trigger-http מפעילים את הפונקציה באמצעות בקשת HTTP(S).
      --trigger-topic=YOUR_PUBSUB_TOPIC הפעלת הפונקציה כשמתפרסמת הודעה בנושא Pub/Sub שצוין.
      --trigger-bucket=YOUR_STORAGE_BUCKET הפעלת הפונקציה כשיוצרים אובייקט או מחליפים אובייקט בקטגוריית Cloud Storage שצוינה.
      --trigger-event-filters=EVENTARC_EVENT_FILTERS הפעלת הפונקציה באמצעות Eventarc כשמתרחש אירוע שתואם למסננים שצוינו.

      במאמרי העזרה של gcloud functions deploy מופיע מידע מלא על פקודת הפריסה והדגלים שלה.

      פרטים נוספים על דגלי ההגדרה של gcloud functions deploy זמינים במסמכי התיעוד של Cloud Run.

  3. כשהפריסה מסתיימת בהצלחה, הפונקציות מופיעות עם סימן וי ירוק בדף הסקירה הכללית של Cloud Run במסוףGoogle Cloud .

    הפריסה הראשונית של פונקציה עשויה להימשך כמה דקות, בזמן שהתשתית הבסיסית מוקצה. פריסה מחדש של פונקציה קיימת מהירה יותר, והתעבורה הנכנסת מועברת אוטומטית לגרסה החדשה ביותר.

    כתובת ה-URL של נקודת הקצה של HTTP

    כשיוצרים פונקציה באמצעות הפקודה gcloud functions או Cloud Functions v2 API, כברירת מחדל, הפונקציה מקבלת כתובת URL של נקודת קצה (endpoint) של HTTP‏ cloudfunctions.net. אם לוקחים את הפונקציה הזו ופורסים אותה ב-Cloud Run, הפונקציה מקבלת גם כתובת URL של נקודת קצה של HTTP‏ run.app. עם זאת, לפונקציות שנוצרות ב-Cloud Run לא תהיה כתובת URL של נקודת קצה מסוג HTTP.cloudfunctions.net כתובת ה-URL של פונקציה cloudfunctions.net וכתובת ה-URL של פונקציה run.app מתנהגות בדיוק באותו אופן. הם ניתנים להחלפה ומשמשים להפעלת הפונקציה.

    דוגמאות ל-Terraform

    דוגמאות לפריסת פונקציות באמצעות Terraform מופיעות במאמרים דוגמה ל-HTTP ב-Terraform ודוגמה ל-Pub/Sub ב-Terraform.

    הגדרה של רשתות

    אפשר לנהל פונקציות שנוצרו באמצעות Cloud Functions v2 API (לדוגמה, באמצעות gcloud functions, ה-API בארכיטקטורת REST או Terraform) גם באמצעות Cloud Run Admin API וגם באמצעות Cloud Functions v2 API.

    מידע נוסף על ניהול רשתות לפונקציות, כולל איך לנתב תעבורה ברשת VPC, זמין במאמר שיטות מומלצות לשימוש ברשתות ב-Cloud Run.

    איך פורסים פונקציות Cloud Run ב-Cloud Run

    פריסת פונקציות ב-Cloud Run דומה לשלבים שמתוארים במסמך הזה, אבל יש לה כמה יתרונות נוספים: