בדיקה מקומית של הפונקציה
במדריך הזה מוסבר איך לקרוא לפונקציה באופן מקומי מקוד מקור באמצעות פקודה של gcloud functions. במאמר פיתוח פונקציות מקומיות מוסבר איך לפתח ולבדוק פונקציות Cloud Run באופן מקומי באמצעות Functions Framework.
כדי לתמוך באיטרציה מהירה ובניפוי באגים בפונקציות שנוצרו באמצעות Cloud Functions v2 API, אפשר להשתמש בפקודה call בממשק שורת הפקודה. כך תוכלו להפעיל פונקציה ישירות כדי לוודא שהיא פועלת כמצופה. כתוצאה מכך, הפונקציה מופעלת באופן מיידי, גם אם היא הופעלה כדי להגיב לאירוע ספציפי.
בדיקת הפונקציה באמצעות Google Cloud CLI
כדי להפעיל את הפונקציה ישירות באמצעות ה-CLI של gcloud, משתמשים בפקודה gcloud functions call ומספקים את הנתונים שהפונקציה מצפה להם כ-JSON בארגומנט --data. לדוגמה:
gcloud functions call YOUR_FUNCTION_NAME \
--region=REGION --gen2 \
--data '{"name":"Kalani"}'
מחליפים את:
- YOUR_FUNCTION_NAME: שם הפונקציה שאתם בודקים
- REGION: Google Cloud האזור שבו הפונקציה נפרסת
הארגומנט --data נשלח לפונקציה שלכם באופן הבא:
- בפונקציות HTTP, הנתונים שאתם מספקים נשלחים כגוף של בקשת POST.
- בפונקציות מבוססות-אירועים, הנתונים מועברים ישירות כנתוני האירוע לפונקציה.
מידע נוסף זמין במאמרי העזרה בנושא gcloud functions call.
דוגמה לפונקציה מבוססת-אירועים ב-Cloud Pub/Sub
בדוגמה הזו אפשר לראות איך להפעיל ישירות פונקציה מבוססת-אירועים שמופעלת על ידי אירועי Pub/Sub:
Node.js
Python
Go
Java
C#
Ruby
PHP
כדי להפעיל את הפונקציה ישירות, שולחים את PubsubMessage כנתוני האירוע, והפונקציה מצפה לנתונים בקידוד Base64:
Node.js
DATA=$(printf 'Hello!'|base64) && gcloud functions call helloPubSub --data '{"data":"'$DATA'"}'
Python
DATA=$(printf 'Hello!'|base64) && gcloud functions call hello_pubsub --data '{"data":"'$DATA'"}'
Go
DATA=$(printf 'Hello!'|base64) && gcloud functions call HelloPubSub --data '{"data":"'$DATA'"}'
Java
DATA=$(printf 'Hello!'|base64) && gcloud functions call java-hello-pubsub --data '{"data":"'$DATA'"}'
C#
DATA=$(printf 'Hello!'|base64) && gcloud functions call csharp-hello-pubsub --data '{"data":"'$DATA'"}'
Ruby
DATA=$(printf 'Hello!'|base64) && gcloud functions call hello_pubsub --data '{"data":"'$DATA'"}'
PHP
DATA=$(printf 'Hello!'|base64) && gcloud functions call helloworldPubsub --data '{"data":"'$DATA'"}'
בדוגמה הזו ל-CLI נעשה שימוש בתחביר bash או sh. היא פועלת בסביבות Linux ו-Mac, אבל לא ב-Windows.