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

במדריך הזה מוסבר איך לבדוק פונקציה של Cloud Run ב Google Cloud מסוף לפני שפורסים אותה. התכונה הזו זמינה לפונקציות Node.js ו-Python.

הכנת פונקציה לבדיקה

כדי להכין פונקציה לבדיקה:

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

    כניסה לדף Cloud Run functions Overview

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

  2. לוחצים על יצירת פונקציה כדי ליצור פונקציה חדשה ב-Node.js או ב-Python, או בוחרים פונקציה קיימת ב-Node.js או ב-Python ולוחצים על עריכה כדי לערוך אותה.

  3. לוחצים על הבא כדי לעבור לדף עריכת הקוד:

    צילום מסך שבו מוצג לוח הבדיקה לפני הפריסה של הפונקציה

  4. כדי להתחיל בתהליך הבדיקה, לוחצים על Test Function (בדיקת הפונקציה).

  5. כשמוצגת בקשה, לוחצים על Start testing כדי לאשר את השימוש בטרמינל של Cloud Shell.

הרצת הבדיקה

אחרי שמבצעים את השלבים הקודמים, חלונית אירוע ההפעלה נפתחת בצד שמאל, ומופיע אישור לכך שהפונקציה מוכנה לבדיקה. לוחצים על הפעלת הבדיקה:

צילום מסך שבו מוצג לוח הבדיקה לפני הפריסה של הפונקציה

השלב הזה בתהליך הבדיקה כולל את הרכיבים הבאים:

  • חלונית אירועי הטריגר. החלונית 'אירוע ההפעלה' מאוכלסת מראש במטען ייעודי (payload) שתואם לטריגר האירוע שציינתם בדף ההגדרות. זהו הקלט לפונקציה.
  • חלון הפלט של Cloud Shell. בחלון הפלט של Cloud Shell מוצג קוד הסטטוס של HTTP וכל תגובה שמוחזרת למתקשר.
  • הרצת הבדיקה מפעילה את הבדיקה.

אפשר לראות את הפלט מהבדיקה בחלון Cloud Shell:

צילום מסך שבו מוצג חלון הפלט של Cloud Shell

טרמינל Cloud Shell

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

אם הבדיקה נכשלת, במסוף Cloud Shell מוצגת הודעת שגיאה שתעזור לכם לזהות את הסיבה המדויקת לבעיה. לדוגמה:

[11:31:47 AM] - Provided module can't be loaded.
Is there a syntax error in your code?
Detailed stack trace: /workspace/index.js:11
    : 'World';
    ^

SyntaxError: Unexpected token ':'
    at Object.compileFunction (node:vm:360:18)
    at wrapSafe (node:internal/modules/cjs/loader:1048:15)
    at Module._compile (node:internal/modules/cjs/loader:1083:27)
    at Module._extensions..js (node:internal/modules/cjs/loader:1173:10)
    at Module.load (node:internal/modules/cjs/loader:997:32)
    at Module._load (node:internal/modules/cjs/loader:838:12)
    at Module.require (node:internal/modules/cjs/loader:1021:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at getUserFunction (/workspace/node_modules/@google-cloud/functions-framework/build/src/loader.js:98:30)
    at async main (/workspace/node_modules/@google-cloud/functions-framework/build/src/main.js:35:32)

[11:31:47 AM] - Could not load the function, shutting down.

כלים לפריסה

אחרי שמסיימים את הבדיקה, אפשר לפרוס את הפונקציה בדרך הרגילה בלחיצה על Deploy (פריסה).