
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Deploy the function
/ 100
Cloud Functions היא סביבת מחשוב ללא שרת (serverless) לפיתוח ולחיבור של שירותי ענן. באמצעות Cloud Functions אפשר לכתוב פונקציות פשוטות למטרה יחידה, ולצרף אותן לאירועים שמופקים בתשתית ובשירותי הענן. הפונקציה ב-Cloud Functions מופעלת כאשר אירוע שעוקבים אחריו מופעל. הקוד שלכם מבוצע בסביבה מנוהלת. לא צריך לספק תשתית או לדאוג בנוגע לניהול שרתים.
את הפונקציות ב-Cloud Functions אפשר לכתוב ב-Node.js, ב-Python וב-Go, והן גם מופעלות בסביבות זמן ריצה ספציפיות לשפה. אתם יכולים להפעיל את הפונקציה ב-Cloud Functions בכל סביבת זמן ריצה תקנית של Node.js. כך תוכלו לנייד את המידע ולבצע בדיקות מקומיות בקלות.
סביבת Cloud Functions מספקת שכבת לוגיקה מקשרת שמאפשרת לכם לכתוב קוד כדי לחבר ולהרחיב את שירותי הענן. אתם יכולים להמתין להעלאת קובץ ל-Cloud Storage, לשינוי ביומן או להודעה נכנסת בנושא Cloud Pub/Sub ולהגיב להם. סביבת Cloud Functions מרחיבה שירותי ענן קיימים ומאפשרת לכם לטפל במספר הולך וגדל של תרחישים לדוגמה באמצעות לוגיקת תכנות שרירותית. לסביבת Cloud Functions יש גישה לפרטי הכניסה לחשבון השירות של Google וכך יש לה אימות ברוב השירותים של Google Cloud כמו Datastore, Cloud Spanner, Cloud Translation API, Cloud Vision API ורבים נוספים. בנוסף, מספר רב של ספריות לקוח מסוג Node.js תומכות בפונקציות ב-Cloud Functions, מה שהופך את השילובים האלה לפשוטים עוד יותר.
אירועי ענן הם דברים שקורים בסביבת הענן שלכם. אלה יכולים להיות שינויי נתונים במסד הנתונים, קבצים שנוספים למערכת אחסון או יצירה של מכונה וירטואלית חדשה.
האירועים מתרחשים בלי קשר לבחירה שלכם אם להגיב להם או לא. את התגובה לאירוע יוצרים באמצעות טריגר. טריגר הוא הצהרה על כך שיש לכם עניין באירוע או בקבוצת אירועים. קישור פונקציה לטריגר מאפשר לכם לתעד את האירועים ולהגיב להם. מידע נוסף על יצירת טריגרים ועל שיוך שלהם לפונקציות זמין בקטע אירועים וטריגרים.
כשמשתמשים ב-Cloud Functions לא צריך להמשיך לנהל שרתים, להגדיר תוכנה, לעדכן תבניות framework או לתקן מערכות הפעלה. התוכנה והתשתית מנוהלות על ידי Google ולכם נותר רק להוסיף קוד. בנוסף, הקצאת המשאבים מתרחשת באופן אוטומטי בתגובה לאירועים. כלומר, פונקציה יכולה לעבור ממספר הפעלות ביום למיליוני הפעלות בלי שתצטרכו לעשות דבר.
מעכשיו אין צורך בשרת ובמפתח נפרדים עבור עומסי עבודה אסינכרוניים, כמו ETL פשוט, או עבור אוטומציית ענן, כמו הפעלת פיתוחי אפליקציות. כל מה שצריך לעשות זה לפרוס פונקציה ב-Cloud Functions המקושרת לאירוע שבו אתם מעוניינים.
בנוסף, האופי המפורט והמותאם לדרישות של הפונקציות ב-Cloud Functions הופך אותן למועמדות מושלמות לממשקי API פשוטים ולתגובות לפעולה מאתר אחר (webhook). מכיוון שיש הקצאות אוטומטיות של נקודות קצה (endpoint) של HTTP בעת פריסת פונקציית HTTP, לא נדרשת ההגדרה המסובכת שקיימת בחלק מהשירותים האחרים. בטבלה שבהמשך מפורטות דוגמאות נוספות לתרחישים לדוגמה של Cloud Functions:
תרחיש לדוגמה |
תיאור |
עיבוד נתונים / ETL |
אתם יכולים להמתין לאירועי Cloud Storage, כמו יצירה, שינוי והסרה של קובץ, ולהגיב להם. כמו כן תוכלו לעבד תמונות, להמיר קידוד של סרטונים, לאמת נתונים ולבצע להם טרנספורמציה ולהפעיל כל שירות באינטרנט מהפונקציה ב-Cloud Functions. |
תגובות לפעולה מאתר אחר (webhook) |
באמצעות טריגר HTTP פשוט, תוכלו להגיב לאירועים שמקורם במערכות של צד שלישי כמו GitHub, Slack, Stripe או כל מקום שיכול לשלוח בקשות HTTP. |
ממשקי API פשוטים |
באמצעות קטעי לוגיקה פשוטים, המוצמדים בצורה רופפת, ניתן ליצור אפליקציות שאפשר לפתח להן גרסת build בקלות ושההתאמה שלהן לעומס (scaling) מתבצעת באופן מיידי. הפונקציות יכולות להיות מבוססות אירוע או שניתן להפעיל אותן ישירות באמצעות HTTP/S. |
קצה עורפי לנייד |
אפשר להשתמש בפלטפורמה לנייד של Google למפתחי אפליקציות, Firebase, כדי לכתוב את הקצה העורפי לנייד ב-Cloud Functions. אתם יכולים להמתין לאירועים מ-Firebase Analytics, ממסד נתונים בזמן אמת, מאימות ומאחסון ולהגיב להם. |
IoT |
דמיינו עשרות או מאות אלפי מכשירים שמשדרים בסטרימינג נתונים אל Cloud Pub/Sub ובכך מפעילים פונקציות ב-Cloud Functions לעיבוד, לטרנספורמציה ולאחסון של נתונים. ב-Cloud Functions כל זה מתבצע לחלוטין ללא שרת. |
בשיעור Lab הזה תלמדו איך ליצור, לפרוס ולבדוק פונקציה ב-Cloud Functions באמצעות שורת הפקודה של Google Cloud Shell.
עליכם לקרוא את ההוראות האלו. המעבדות מוגבלות בזמן ואי אפשר להשהות אותן. הטיימר מתחיל כשלוחצים על Start Lab ומראה את משך הזמן שבו תוכלו להשתמש במשאבים ב-Google Cloud.
במעבדה המעשית הזו של Qwiklabs, תוכלו לבצע את פעילויות המעבדה בעצמכם בסביבת ענן אמיתית, ולא בהדמיה או בסביבה להדגמה. לשם כך, יינתנו לכם פרטי כניסה זמניים שאיתם תיכנסו ותיגשו אל Google Cloud במשך הפעילות של המעבדה.
כדי להשלים את המעבדה, תצטרכו:
הערה: אם כבר יש לכם פרויקט או חשבון Google Cloud אישי משלכם, אין להשתמש בו במעבדה הזו.
הערה: אם משתמשים במכשיר עם Chrome OS, צריך לפתוח חלון אנונימי כדי להריץ את המעבדה הזו.
לוחצים על הלחצן Start Lab (התחלת השיעור המעשי). אם זה שיעור בתשלום, יקפוץ חלון שבו בוחרים אמצעי תשלום. מימין יש חלונית עם פרטי כניסה זמניים שמולאו מראש. צריך להשתמש בפרטים האלו בשיעור המעשי הזה.
מעתיקים את שם המשתמש ואז לוחצים על Open Google Console (פתיחת Google Console). יופעלו משאבים במעבדה, ואז ייפתח הדף Sign in (כניסה) בכרטיסייה נפרדת.
טיפ: כדאי לפתוח את הכרטיסיות בחלונות נפרדים, אחד לצד השני.
בדף Sign in (כניסה), מדביקים את שם המשתמש שהעתקתם מהחלונית Connection Details (פרטי התחברות). אחר כך מעתיקים ומדביקים את הסיסמה.
חשוב: צריך להשתמש בפרטי הכניסה מהחלונית Connection Details. אין להשתמש בפרטי הכניסה של Qwiklabs. אם יש לכם חשבון Google Cloud משלכם, אל תשתמשו בו בשיעור המעשי הזה (כך תימנעו מחיוב בתשלום).
לוחצים כדי לעבור את הדפים הבאים:
לאחר כמה דקות, Cloud Console ייפתח בכרטיסייה הזו.
סביבת Cloud Shell היא מכונה וירטואלית שמותקנים בה כלים למפתחים. יש בה ספריית בית בנפח עקבי של 5GB והיא פועלת ב-Google Cloud. ב-Cloud Shell יש גישה לשורת הפקודה למשאבים שלכם ב-Google Cloud.
ב-Cloud Console, בסרגל הכלים שבפינה הימנית העליונה, לוחצים על הלחצן Activate Cloud Shell (הפעלת Cloud Shell).
לוחצים על Continue (המשך).
יחלפו כמה רגעים עד שההקצאה והחיבור לסביבת העבודה יושלמו. עם החיבור יתבצע גם אימות, ואז הפרויקט יוגדר לפי PROJECT_ID. לדוגמה:
gcloud
הוא כלי שורת הפקודה של Google Cloud. הוא מותקן מראש ב-Cloud Shell ותומך בהשלמת פקודות.
תוכלו לרשום את שם החשבון הפעיל באמצעות הפקודה הבאה:
gcloud auth list
(פלט)
Credentialed accounts:
- <myaccount>@<mydomain>.com (active)
(פלט לדוגמה)
Credentialed accounts:
- google1623327_student@qwiklabs.net
תוכלו לרשום את מזהה הפרויקט באמצעות הפקודה הבאה:
gcloud config list project
(פלט)
[core]
project = <project_ID>
(פלט לדוגמה)
[core]
project = qwiklabs-gcp-44776a13dea667a6
תחילה, אתם עומדים ליצור פונקציה פשוטה בשם helloWorld. פונקציה זו כותבת הודעה ביומנים של Cloud Functions. היא מופעלת על ידי אירועי פונקציה ב-Cloud Functions והיא מקבלת פונקציית קריאה חוזרת שנועדה לסמן שהפונקציה הושלמה.
בשיעור Lab הזה, האירוע של הפונקציה ב-Cloud Functions הוא אירוע בנושא Cloud Pub/Sub. Pub/Sub הוא שירות העברת הודעות בו מתבצעת הפרדה בין מי ששולח הודעות לבין מי שמקבל את ההודעות. כאשר ההודעה נשלחת או מתפרסמת, נדרש מינוי כדי שהמקבל יידע על כך ויקבל את ההודעה. מידע נוסף בנוגע ל-Pub/Sub זמין בקטע Google Cloud Pub/Sub: שירות העברת הודעות בקנה המידה של Google.
מידע נוסף בנוגע לפרמטר האירוע ולפרמטר הקריאה החוזרת (callback) זמין בקטע Background Functions (פונקציות ברקע).
כך יוצרים פונקציה ב-Cloud Functions:
בשורת הפקודה של Cloud Shell, יוצרים ספרייה לקוד הפונקציה.
mkdir gcf_hello_world
עוברים לספרייה gcf_hello_world
.
cd gcf_hello_world
יוצרים ופותחים את index.js
לעריכה.
nano index.js
מעתיקים את המידע הבא לתוך הקובץ index.js
/**
* Background Cloud Function to be triggered by Pub/Sub.
* This function is exported by index.js, and executed when
* the trigger topic receives a message.
*
* @param {object} data The event payload.
* @param {object} context The event metadata.
*/
exports.helloWorld = (data, context) => {
const pubSubMessage = data;
const name = pubSubMessage.data
? Buffer.from(pubSubMessage.data, 'base64').toString() : "Hello World";
console.log(`My Cloud Function: ${name}`);
};
יוצאים מה-nano (Ctrl+x) ושומרים (Y) את הקובץ.
כדי ליצור קטגוריה חדשה של אחסון בענן, משתמשים בפקודה הבאה עבור הפונקציה:
gsutil mb -p [PROJECT_ID] gs://[BUCKET_NAME]
הערך PROJECT_ID הוא מזהה הפרויקט בפרטי ההתחברות של שיעור ה-Lab הזה
הערך BUCKET_NAME הוא השם שניתן לקטגוריה. השם חייב להיות ייחודי בהיקף גלובלי. מידע נוסף זמין בקטע Bucket naming guidelines (הנחיות בנושא מתן שמות לקטגוריות).
לוחצים על Check my progress כדי לוודא שהשלמתם את המשימה. אם המשימה הושלמה בהצלחה, יופיע ציון בדיקה.
בעת פריסת פונקציה חדשה, עליכם לציין --trigger-topic
, --trigger-bucket
או --trigger-http
. בעת פריסת עדכון של פונקציה קיימת, הפונקציה שומרת על הטריגר הקיים, אלא אם ציינתם אפשרות אחרת.
בשיעור ה-Lab הזה תגדירו את הקוד --trigger-topic
בתור hello_world
.
פורסים את הפונקציה אל נושא Pub/Sub בשם hello_world באמצעות החלפת [BUCKET_NAME]
בשם של הקטגוריה שלכם:
gcloud functions deploy helloWorld \
--stage-bucket [BUCKET_NAME] \
--trigger-topic hello_world \
--runtime nodejs8
אם מתבקשים, מזינים Y
כדי לאפשר הפעלות לא מאומתות של פונקציה חדשה.
מאמתים את הסטטוס של הפונקציה.
gcloud functions describe helloWorld
המשמעות של סטטוס ACTIVE (פעיל) היא שהפונקציה נפרסה.
entryPoint: helloWorld
eventTrigger:
eventType: providers/cloud.pubsub/eventTypes/topic.publish
failurePolicy: {}
resource:
...
status: ACTIVE
...
כל הודעה שמתפרסמת בנושא גורמת להפעלת פונקציה, והתוכן של ההודעות מועבר בתור נתוני קלט.
לוחצים על Check my progress כדי לוודא שהשלמתם את המשימה. אם המשימה הושלמה בהצלחה, יופיע ציון בדיקה.
לאחר פריסת הפונקציה ואימות הפעילות שלה, הגיע השלב שבו צריך לבדוק שהפונקציה כותבת הודעה ביומן הענן לאחר זיהוי אירוע.
כדי ליצור בדיקת הודעה של הפונקציה, עליכם להזין את הפקודה הבאה.
DATA=$(printf 'Hello World!'|base64) && gcloud functions call helloWorld --data '{"data":"'$DATA'"}'
כלי הענן יחזיר את מזהה הביצוע של הפונקציה, וזה סימן לכך שההודעה נכתבה ביומן.
פלט לדוגמה:
executionId: 3zmhpf7l6j5b
כדי לאשר שיש הודעות ביומן עם אותו מזהה הביצוע, עליכם לבדוק את היומנים.
כדי לראות את ההודעות שלכם בהיסטוריית היומן, עליכם לבדוק את היומנים.
gcloud functions logs read helloWorld
אם הפונקציה בוצעה בהצלחה, ההודעות ביומן יופיעו כך:
LEVEL NAME EXECUTION_ID TIME_UTC LOG
D helloWorld 3zmhpf7l6j5b 2017-12-05 22:17:42.585 Function execution started
I helloWorld 3zmhpf7l6j5b 2017-12-05 22:17:42.650 My Cloud Function: Hello World!
D helloWorld 3zmhpf7l6j5b 2017-12-05 22:17:42.666 Function execution took 81 ms, finished with status: 'ok'
האפליקציה שלכם נפרסת ונבדקת ואז אתם יכולים לראות את היומנים.
בהמשך מופיעות שאלות אמריקאיות לחידוד ההבנה של העקרונות של שיעור ה-Lab הזה. ענו עליהן כמיטב יכולתכם.
שיעור ה-Lab הזה ללימוד עצמי הוא חלק מהמשימות Baseline: Deploy & Develop (בסיס: פריסה ופיתוח), Baseline: Infrastructure (בסיס: תשתית) ו-Optimizing your Google Cloud Costs (ביצוע אופטימיזציה לעלויות Google Cloud) ב-Qwiklabs. יחידת Quest היא סדרה של שיעורי Lab קשורים שיוצרים מסלול לימוד. השלמה של יחידת ה-Quest הזו תזכה אתכם בתג שמופיע למעלה, לציון ההישג שלכם. אתם יכולים להציג את התגים באופן גלוי לכול ולקשר אותם לקורות החיים שלכם באינטרנט או לחשבון במדיה החברתית. רוצים לקבל קרדיט מיידי על השלמת שיעור ה-Lab הזה? הירשמו ליחידת Quest זו. כאן ניתן לצפות במשימות Qwiklabs נוספות.
שיעור ה-Lab הזה הוא גם חלק מסדרה של שיעורים מעשיים שנקראים Qwik Starts (התחלות מהירות). המטרה של השיעורים האלה היא לתת לכם טעימה קטנה מהפיצ'רים הרבים שיש ב-Google Cloud. רוצים למצוא את שיעור ה-Lab הזה? חפשו את Qwik Starts בקטלוג השיעורים!
יעזרו לכם להפיק את המרב מהאמצעים הטכנולוגיים של Google Cloud. השיעורים שלנו מכילים מיומנויות טכניות ושיטות מומלצות כדי שתוכלו להתחיל לעבוד מהר ולהמשיך ללמוד ולהתפתח. נציג את העקרונות הבסיסיים להכשרה ברמה מתקדמת, עם אפשרויות וירטואליות, שידורים חיים או על פי דרישה, בהתאם ללוח הזמנים העמוס שלכם. בעזרת ההסמכות תוכלו לאשר ולאמת את המיומנות והמומחיות שלכם באמצעים הטכנולוגיים של Google Cloud.
זכויות יוצרים 2025 Google LLC. כל הזכויות שמורות. Google והלוגו של Google הם סימנים מסחריים רשומים של Google LLC. שמות של חברות ומוצרים אחרים עשויים להיות סימנים מסחריים של החברות, בהתאמה, שאליהן הם משויכים.
This content is not currently available
We will notify you via email when it becomes available
Great!
We will contact you via email if it becomes available
One lab at a time
Confirm to end all existing labs and start this one