arrow_back

Cloud Functions: Qwik Start - Command Line (התחלה מהירה – שורת הפקודה)

Join Sign in
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Cloud Functions: Qwik Start - Command Line (התחלה מהירה – שורת הפקודה)

Lab 30 minutes universal_currency_alt 1 Credit show_chart Introductory
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP080

Google Cloud מעבדות ללימוד עצמי של

סקירה כללית

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

  1. לוחצים על הלחצן Start Lab (התחלת השיעור המעשי). אם זה שיעור בתשלום, יקפוץ חלון שבו בוחרים אמצעי תשלום. מימין יש חלונית עם פרטי כניסה זמניים שמולאו מראש. צריך להשתמש בפרטים האלו בשיעור המעשי הזה.

    פתיחת Google Console

  2. מעתיקים את שם המשתמש ואז לוחצים על Open Google Console (פתיחת Google Console). יופעלו משאבים במעבדה, ואז ייפתח הדף Sign in (כניסה) בכרטיסייה נפרדת.

    כניסה

    טיפ: כדאי לפתוח את הכרטיסיות בחלונות נפרדים, אחד לצד השני.

  3. בדף Sign in (כניסה), מדביקים את שם המשתמש שהעתקתם מהחלונית Connection Details (פרטי התחברות). אחר כך מעתיקים ומדביקים את הסיסמה.

    חשוב: צריך להשתמש בפרטי הכניסה מהחלונית Connection Details. אין להשתמש בפרטי הכניסה של Qwiklabs. אם יש לכם חשבון Google Cloud משלכם, אל תשתמשו בו בשיעור המעשי הזה (כך תימנעו מחיוב בתשלום).

  4. לוחצים כדי לעבור את הדפים הבאים:

    • הסכמה לתנאים ולהגבלות.
    • אין להוסיף אפשרויות שחזור או אימות דו-שלבי (כי החשבון הזה זמני).
    • אין להירשם לתקופות ניסיון בחינם.

לאחר כמה דקות, Cloud Console ייפתח בכרטיסייה הזו.

הפעלת Cloud Shell

סביבת Cloud Shell היא מכונה וירטואלית שמותקנים בה כלים למפתחים. יש בה ספריית בית בנפח עקבי של 5GB והיא פועלת ב-Google Cloud. ב-Cloud Shell יש גישה לשורת הפקודה למשאבים שלכם ב-Google Cloud.

ב-Cloud Console, בסרגל הכלים שבפינה הימנית העליונה, לוחצים על הלחצן Activate Cloud Shell (הפעלת Cloud Shell).

הסמל של Cloud Shell

לוחצים על Continue (המשך).

cloudshell_continue.png

יחלפו כמה רגעים עד שההקצאה והחיבור לסביבת העבודה יושלמו. עם החיבור יתבצע גם אימות, ואז הפרויקט יוגדר לפי PROJECT_ID. לדוגמה:

טרמינל Cloud Shell

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:

  1. בשורת הפקודה של Cloud Shell, יוצרים ספרייה לקוד הפונקציה.

    mkdir gcf_hello_world
    
  2. עוברים לספרייה gcf_hello_world.

    cd gcf_hello_world
    
  3. יוצרים ופותחים את index.js לעריכה.

    nano index.js
    
  4. מעתיקים את המידע הבא לתוך הקובץ 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}`);‎
    };
    
  5. יוצאים מה-nano ‏(Ctrl+x) ושומרים (Y) את הקובץ.

יצירת קטגוריה של אחסון בענן

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

gsutil mb -p [PROJECT_ID] gs://[BUCKET_NAME]

בדיקת המשימה שהושלמה

לוחצים על Check my progress כדי לוודא שהשלמתם את המשימה. אם המשימה הושלמה בהצלחה, יופיע ציון בדיקה.

יצירת קטגוריה של אחסון בענן.

פריסת הפונקציה

בעת פריסת פונקציה חדשה, עליכם לציין ‎--trigger-topic‏, ‎--trigger-bucket או ‎--trigger-http. בעת פריסת עדכון של פונקציה קיימת, הפונקציה שומרת על הטריגר הקיים, אלא אם ציינתם אפשרות אחרת.

בשיעור ה-Lab הזה תגדירו את הקוד ‎--trigger-topic בתור hello_world.

  1. פורסים את הפונקציה אל נושא Pub/Sub בשם hello_world באמצעות החלפת [BUCKET_NAME] בשם של הקטגוריה שלכם:

    gcloud functions deploy helloWorld \‎
    ‎  --stage-bucket [BUCKET_NAME] \‎
    ‎  --trigger-topic hello_world \‎
    ‎  --runtime nodejs8
    
    אם מתקבלת האזהרה OperationError, מתעלמים ממנה ומריצים שוב את הפקודה.

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

  1. מאמתים את הסטטוס של הפונקציה.

    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'‎
שימו לב: יחלפו כ-10 דקות עד להצגת היומנים. בנוסף, דרך חלופית להצגת היומנים היא דרך Logging > Logs Explorer.

האפליקציה שלכם נפרסת ונבדקת ואז אתם יכולים לראות את היומנים.

בחינת ההבנה שלכם

בהמשך מופיעות שאלות אמריקאיות לחידוד ההבנה של העקרונות של שיעור ה-Lab הזה. ענו עליהן כמיטב יכולתכם.

כל הכבוד!

41ab6fa0d099216d.png 5edc9b3763bbb596.png IC_OptimizingYourGCPCosts-V2_resized.png

סיום המשימה

שיעור ה-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 בקטלוג השיעורים!

השלבים הבאים – מידע נוסף

הדרכה והסמכה של Google Cloud

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

עדכון אחרון של המדריך: 26 בינואר 2021.
בדיקה אחרונה של שיעור ה-Lab:‏ 8 בינואר 2021

זכויות יוצרים 2024 Google LLC. כל הזכויות שמורות. Google והלוגו של Google הם סימנים מסחריים רשומים של Google LLC. שמות של חברות ומוצרים אחרים עשויים להיות סימנים מסחריים של החברות, בהתאמה, שאליהן הם משויכים.