פריסה לפונקציות Cloud Run

בדף הזה מוסבר איך פורסים אפליקציות לפונקציות Cloud Run באמצעות Cloud Build. אם אתם חדשים ב-Cloud Build, כדאי קודם לקרוא את המדריכים למתחילים ואת הסקירה הכללית על הגדרת Build.

פונקציות Cloud Run הן סביבת מחשוב ללא שרת (serverless) לפיתוח ולחיבור של שירותי ענן. באמצעות פונקציות Cloud Run אפשר לכתוב פונקציות למטרה יחידה, ולצרף אותן לאירועים שמופקים בתשתית ובשירותי הענן. הפונקציה מופעלת כשמופעל אירוע שעוקבים אחריו. מידע נוסף על פונקציות Cloud Run זמין במאמרי העזרה בנושא פונקציות Cloud Run.

לפני שמתחילים

  • מפעילים את Cloud Run functions API:‏

    הפעלת Cloud Run functions API

  • חשוב להכין את קוד המקור של האפליקציה. קוד המקור צריך להיות מאוחסן במאגר כמו GitHub או Bitbucket.

  • כדי להריץ את הפקודות gcloud שבדף הזה, צריך להתקין את Google Cloud CLI.

הרשאות נדרשות לניהול זהויות והרשאות גישה (IAM)

  1. במסוף Google Cloud , נכנסים לדף Cloud Build Permissions:

    עוברים אל הרשאות

  2. בחשבון השירות שצוין ב-Cloud Build או בחשבון השירות שמוגדר כברירת מחדל ב-Cloud Build, מגדירים את הסטטוס של התפקידים הבאים למופעל:

    • מפתח Cloud Functions‏ (roles/cloudfunctions.developer) | לפריסה ולניהול של פונקציות.
    • אדמין של Cloud Run ‏ (roles/run.admin) | מאפשר לחשבון השירות של Cloud Build לפרוס גרסאות חדשות ב-Cloud Run.
    • אדמין לניהול נפח האחסון (roles/storage.admin) | מאפשר קריאה וכתיבה מ-Cloud Storage.
    • כותב של Artifact Registry ‏ (roles/artifactregistry.writer) | מאפשר שליפת תמונות מ-Artifact Registry וכתיבה ב-Artifact Registry.
    • כותב יומנים (roles/logging.logWriter) | מאפשר לכתוב רשומות ביומן ב-Cloud Logging.
    • עריכה ב-Cloud Build‏ (roles/cloudbuild.builds.editor) | מאפשר לחשבון השירות להריץ בנייה.

הגדרת הפריסה

באמצעות Cloud Build אפשר להשתמש בכל קובץ אימג' של קונטיינר שזמין לציבור כדי להריץ את המשימות. כדי לעשות את זה, מציינים את התמונה ב-step build בקובץ ההגדרות של Cloud Build.

פונקציות Cloud Run מספקות את הפקודה gcloud functions deploy, שפורסת את הפונקציה מהספרייה שמכילה את קוד הפונקציה. אתם יכולים להשתמש בתמונת cloud-sdk כשלב build בקובץ ההגדרות כדי להפעיל פקודות gcloud בתוך התמונה. הארגומנטים שמועברים לשלב ה-build הזה מועברים ישירות אל Google Cloud CLI, כך שאפשר להריץ כל פקודה של gcloud בתמונה הזו.

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

  1. בתיקיית השורש של הפרויקט, יוצרים את קובץ תצורת ה-Cloud Build בשם cloudbuild.yaml או cloudbuild.json.
  2. בקובץ התצורה:

    • מוסיפים שדה name ומציינים את שלב הבנייה gcloud.
    • מוסיפים functions deploy לשדה args כדי להפעיל את הפקודה gcloud functions deploy. אפשרויות ההגדרה הזמינות מפורטות במאמר gcloud functions deploy.
    • --source=. מציין שקוד המקור נמצא בספריית העבודה הנוכחית.

    YAML

    steps:
    - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
      args:
      - gcloud
      - functions
      - deploy
      - FUNCTION_NAME
      - --region=FUNCTION_REGION
      - --source=.
      - --trigger-http
      - --runtime=RUNTIME
    

    JSON

    {
     "steps": [
      {
         "name": "gcr.io/google.com/cloudsdktool/cloud-sdk",
         "args": [
           "gcloud",
           "functions",
           "deploy",
            [
              "FUNCTION_NAME"
            ],
            "--region=FUNCTION_REGION",
            "--source=.",
            "--trigger-http",
            "--runtime=RUNTIME"
         ]
       }
      ]
    }
    

    מחליפים את ערכי ה-placeholder בקובץ התצורה שלמעלה בערכים הבאים:

    • FUNCTION_NAME הוא השם של פונקציות Cloud Run שאתם פורסים. אם מעדכנים פונקציה קיימת, הערך הזה צריך להיות זהה לשם הפונקציה שמעדכנים.
    • FUNCTION_REGION הוא האזור שבו אתם פורסים פונקציות Cloud Run. רשימת האזורים הנתמכים מופיעה במאמר מיקומים של פונקציות Cloud Run.
    • --trigger-http הוא סוג הטריגר של הפונקציה הזו, ובמקרה הזה מדובר בבקשת HTTP (webhook).
    • RUNTIME הוא זמן הריצה שבו הפונקציה תפעל.

    מידע נוסף על השימוש ב-gcloud functions deploy זמין במסמכי העזרה בנושא פונקציות Cloud Run.

  3. מתחילים את ה-build באמצעות קובץ ההגדרות שנוצר בשלב הקודם:

     gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORY
    

    מחליפים את ערכי ה-placeholder בקובץ התצורה שלמעלה בערכים הבאים:

    • CONFIG_FILE_PATH הוא הנתיב לקובץ התצורה של ה-build.
    • SOURCE_DIRECTORY הוא הנתיב או כתובת ה-URL של קוד המקור.
    • REGION הוא אחד מאזורי הבנייה הנתמכים.

    אם לא מציינים CONFIG_FILE_PATH ו-SOURCE_DIRECTORY בפקודה gcloud builds submit, ‏ Cloud Build מניח שקובץ ההגדרות וקוד המקור נמצאים בספריית העבודה הנוכחית.

פריסה רציפה

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

כדי להפוך את הפריסה לאוטומטית בפונקציות Cloud Run:

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

    YAML

    steps:
    - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
      args:
      - gcloud
      - functions
      - deploy
      - FUNCTION_NAME
      - --region=FUNCTION_REGION
      - --source=.
      - --trigger-http
      - --runtime=RUNTIME
    

    JSON

    {
     "steps": [
      {
         "name": "gcr.io/google.com/cloudsdktool/cloud-sdk",
         "args": [
           "gcloud",
           "functions",
           "deploy",
            [
              "FUNCTION_NAME"
            ],
            "--region=FUNCTION_REGION",
            "--source=.",
            "--trigger-http",
            "--runtime=RUNTIME"
         ]
       }
      ]
    }
    

    מחליפים את ערכי ה-placeholder בקובץ התצורה שלמעלה בערכים הבאים:

    • FUNCTION_NAME הוא השם של פונקציות Cloud Run שאתם פורסים. אם מעדכנים פונקציה קיימת, הערך הזה צריך להיות זהה לשם הפונקציה שמעדכנים.
    • FUNCTION_REGION הוא האזור שבו אתם פורסים פונקציות Cloud Run. רשימת האזורים הנתמכים מופיעה במאמר מיקומים של פונקציות Cloud Run.
    • --trigger-http הוא סוג הטריגר של הפונקציה הזו, ובמקרה הזה מדובר בבקשת HTTP (webhook).
    • RUNTIME הוא זמן הריצה שבו הפונקציה תפעל.
  2. יוצרים טריגר לפיתוח גרסת Build באמצעות קובץ ההגדרות שנוצר בשלב הקודם:

    1. פותחים את הדף Triggers במסוף Google Cloud :

      פתיחת הדף Triggers

    2. בוחרים את הפרויקט מהתפריט הנפתח של בורר הפרויקטים בחלק העליון של הדף.

    3. לוחצים על Create Trigger (יצירת טריגר).

    4. בשדה שם, מזינים שם לטריגר.

    5. בקטע Region (אזור), בוחרים את האזור של הטריגר.

    6. בקטע Event (אירוע), בוחרים את אירוע המאגר כדי להפעיל את הטריגר.

    7. בקטע Source (מקור), בוחרים את המאגר ואת שם הענף או התג שיתחילו את הטריגר. מידע נוסף על הגדרת ההסתעפויות שייבנו באופן אוטומטי זמין במאמר בנושא יצירת טריגר לפיתוח גרסת Build.

    8. בקטע Configuration (הגדרה), בוחרים באפשרות Cloud Build configuration file (YAML or JSON) (קובץ הגדרה של Cloud Build‏ (YAML או JSON)).

    9. בשדה Cloud Build configuration file location, מקלידים cloudbuild.yaml אחרי /.

    10. לוחצים על יצירה כדי לשמור את טריגר לפיתוח גרסת Build.

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

מידע נוסף על יצירת טריגרים של Cloud Build זמין במאמר בנושא יצירה וניהול של טריגרים של Build.

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