Checkpoints
Deploy the function
/ 100
Cloud Functions: Qwik Start - Command Line (התחלה מהירה – שורת הפקודה)
GSP080
סקירה כללית
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, מה שהופך את השילובים האלה לפשוטים עוד יותר.
Events and Triggers (אירועים וטריגרים)
אירועי ענן הם דברים שקורים בסביבת הענן שלכם. אלה יכולים להיות שינויי נתונים במסד הנתונים, קבצים שנוספים למערכת אחסון או יצירה של מכונה וירטואלית חדשה.
האירועים מתרחשים בלי קשר לבחירה שלכם אם להגיב להם או לא. את התגובה לאירוע יוצרים באמצעות טריגר. טריגר הוא הצהרה על כך שיש לכם עניין באירוע או בקבוצת אירועים. קישור פונקציה לטריגר מאפשר לכם לתעד את האירועים ולהגיב להם. מידע נוסף על יצירת טריגרים ועל שיוך שלהם לפונקציות זמין בקטע אירועים וטריגרים.
ללא שרת (serverless)
כשמשתמשים ב-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.
הפעולות שתבצעו:
- יצירת פונקציה פשוטה ב-Cloud Functions
- פריסה ובדיקה של הפונקציה
- צפייה ביומנים
הגדרה
לפני שלוחצים על הלחצן Start Lab (התחלת המעבדה)
עליכם לקרוא את ההוראות האלו. המעבדות מוגבלות בזמן ואי אפשר להשהות אותן. הטיימר מתחיל כשלוחצים על Start Lab ומראה את משך הזמן שבו תוכלו להשתמש במשאבים ב-Google Cloud.
במעבדה המעשית הזו של Qwiklabs, תוכלו לבצע את פעילויות המעבדה בעצמכם בסביבת ענן אמיתית, ולא בהדמיה או בסביבה להדגמה. לשם כך, יינתנו לכם פרטי כניסה זמניים שאיתם תיכנסו ותיגשו אל Google Cloud במשך הפעילות של המעבדה.
מה צריך?
כדי להשלים את המעבדה, תצטרכו:
- גישה לדפדפן אינטרנט סטנדרטי (מומלץ להשתמש בדפדפן Chrome).
- זמן להשלמת המעבדה.
הערה: אם כבר יש לכם פרויקט או חשבון Google Cloud אישי משלכם, אין להשתמש בו במעבדה הזו.
הערה: אם משתמשים במכשיר עם Chrome OS, צריך לפתוח חלון אנונימי כדי להריץ את המעבדה הזו.
איך מתחילים שיעור מעשי ונכנסים אל Google Cloud Console
-
לוחצים על הלחצן Start Lab (התחלת השיעור המעשי). אם זה שיעור בתשלום, יקפוץ חלון שבו בוחרים אמצעי תשלום. מימין יש חלונית עם פרטי כניסה זמניים שמולאו מראש. צריך להשתמש בפרטים האלו בשיעור המעשי הזה.
-
מעתיקים את שם המשתמש ואז לוחצים על Open Google Console (פתיחת Google Console). יופעלו משאבים במעבדה, ואז ייפתח הדף Sign in (כניסה) בכרטיסייה נפרדת.
טיפ: כדאי לפתוח את הכרטיסיות בחלונות נפרדים, אחד לצד השני.
-
בדף Sign in (כניסה), מדביקים את שם המשתמש שהעתקתם מהחלונית Connection Details (פרטי התחברות). אחר כך מעתיקים ומדביקים את הסיסמה.
חשוב: צריך להשתמש בפרטי הכניסה מהחלונית Connection Details. אין להשתמש בפרטי הכניסה של Qwiklabs. אם יש לכם חשבון Google Cloud משלכם, אל תשתמשו בו בשיעור המעשי הזה (כך תימנעו מחיוב בתשלום).
-
לוחצים כדי לעבור את הדפים הבאים:
- הסכמה לתנאים ולהגבלות.
- אין להוסיף אפשרויות שחזור או אימות דו-שלבי (כי החשבון הזה זמני).
- אין להירשם לתקופות ניסיון בחינם.
לאחר כמה דקות, Cloud Console ייפתח בכרטיסייה הזו.
הפעלת Cloud Shell
סביבת 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
אם מתקבלת האזהרה OperationError, מתעלמים ממנה ומריצים שוב את הפקודה.
אם מתבקשים, מזינים 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 הבא
שיעור ה-Lab הזה הוא גם חלק מסדרה של שיעורים מעשיים שנקראים Qwik Starts (התחלות מהירות). המטרה של השיעורים האלה היא לתת לכם טעימה קטנה מהפיצ'רים הרבים שיש ב-Google Cloud. רוצים למצוא את שיעור ה-Lab הזה? חפשו את Qwik Starts בקטלוג השיעורים!
השלבים הבאים – מידע נוסף
- עכשיו, לאחר שהשתמשתם בשורת הפקודה כדי להפעיל פונקציה ב-Cloud Functions, מומלץ לנסות את שיעור ה-Lab שנקרא Cloud Functions: Qwik Start - Console (התחלה מהירה – מסוף) כדי להתחיל פונקציה ב-Cloud Functions באמצעות ה-Cloud Console.
- לקבלת מידע נוסף על App Engine באמצעות סקירה של App Engine.
- אתם יכולים להתנסות במשהו אחר עם App Engine באמצעות שיעור ה-Lab שנקרא תחילת העבודה עם Flask בסביבה הרגילה של App Engine.
הדרכה והסמכה של Google Cloud
יעזרו לכם להפיק את המרב מהאמצעים הטכנולוגיים של Google Cloud. השיעורים שלנו מכילים מיומנויות טכניות ושיטות מומלצות כדי שתוכלו להתחיל לעבוד מהר ולהמשיך ללמוד ולהתפתח. נציג את העקרונות הבסיסיים להכשרה ברמה מתקדמת, עם אפשרויות וירטואליות, שידורים חיים או על פי דרישה, בהתאם ללוח הזמנים העמוס שלכם. בעזרת ההסמכות תוכלו לאשר ולאמת את המיומנות והמומחיות שלכם באמצעים הטכנולוגיים של Google Cloud.
עדכון אחרון של המדריך: 26 בינואר 2021.
בדיקה אחרונה של שיעור ה-Lab: 8 בינואר 2021
זכויות יוצרים 2024 Google LLC. כל הזכויות שמורות. Google והלוגו של Google הם סימנים מסחריים רשומים של Google LLC. שמות של חברות ומוצרים אחרים עשויים להיות סימנים מסחריים של החברות, בהתאמה, שאליהן הם משויכים.