1. מבוא
העדכון האחרון: 21 ביוני 2023
התראות על בדיקות זמני פעילות לצורך זמינות
התראות על בדיקות זמינות מאפשרות לכם לזהות ולפתור במהירות בעיות שעשויות להשפיע על השירותים שלכם. קבלת התראות על הפסקות שירות מאפשרת לכם לנקוט צעדים כדי למזער את ההשפעה על המשתמשים והלקוחות שלכם.
בדיקות הזמינות מתבצעות במרווחי זמן, והמרווח הקצר ביותר הוא 60 שניות. אם אתם צריכים רמת פירוט גבוהה יותר מ-60 שניות, כדאי גם לעקוב אחרי קודי שגיאה כאירועים דינמיים באמצעות התראות מבוססות-יומן, כאינדיקטור נוסף לזמינות. אם מרווח של 60 שניות או יותר מקובל עליכם, בדיקות זמני פעילות הן דרך קלה למדוד את השירות שלכם עם מעט הגדרות נוספות.
אם שירות מסוים לא זמין, בדיקת זמן הפעולה תזהה את הבעיה גם אם אין תנועה. לעומת זאת, על התנועה יכולים להשפיע גורמים כמו תחזוקה, שדרוגים ואפילו גורמים חיצוניים למערכת, כמו מזג אוויר גרוע או אירועי ספורט שמסיחים את הדעת מהשימוש.
למידע נוסף על המקרים שבהם כדאי להשתמש בבדיקות זמינות, אפשר לעיין במאמר איך מוודאים את הזמינות של המשאבים ב-Google Cloud.
נושאים ב-Pub/Sub כערוץ התראות
אפשר להשתמש בנושא Pub/Sub כערוץ התראות של Google Cloud Monitoring כדי לשלוח התראות למינוי Pub/Sub. כך תוכלו לשלב את ההתראות של Cloud Monitoring עם מערכות אחרות, כולל שירותי התראות של צד שלישי.
כדי להשתמש בנושא Pub/Sub כערוץ התראות, קודם צריך ליצור נושא Pub/Sub ומינוי Pub/Sub. לאחר מכן, צריך ליצור ערוץ התראות ב-Cloud Monitoring שמשתמש בנושא Pub/Sub כיעד.
כשמופעלת התראה, Cloud Monitoring שולח הודעה לנושא Pub/Sub. לאחר מכן, האפליקציה הרשומה למינוי Pub/Sub יכולה לעבד את ההודעה ולנקוט פעולה מתאימה.
מה תפַתחו
ב-Codelab הזה תפרסו אפליקציה, תיצרו נושא Pub/Sub ותיצרו התראה על בדיקת זמינות לאפליקציה שמשתמשת בנושא Pub/Sub כערוץ התראות.
מה תלמדו
- איך יוצרים נושא Pub/Sub
- איך יוצרים בדיקה של זמני פעילות והתראה
ה-Codelab הזה מתמקד ביצירת התראה לבדיקת זמני פעילות. מושגים וקוד אפליקציה שלא רלוונטיים מוצגים בקצרה, ואתם יכולים פשוט להעתיק ולהדביק אותם.
מה תצטרכו
- חשבון Google Cloud עם הרשאות ל:
- פריסת אפליקציות Cloud Run
- יצירת נושאים ב-Pub/Sub
- יצירת בדיקות של זמני פעילות
- יצירת התראות
2. תהליך ההגדרה
בחירה או יצירה של פרויקט ב-Google Cloud
כדי לבחור פרויקט קיים, משתמשים בתפריט הנפתח:

כדי ליצור פרויקט חדש ב-Google Cloud, פועלים לפי השלבים הבאים:
- עוברים אל Google Cloud Platform Console.
- לוחצים על הלחצן Create Project (יצירת פרויקט).
- מזינים שם לפרויקט.
- בוחרים חשבון לחיוב עבור הפרויקט.
- לוחצים על הלחצן יצירה.
הפרויקט ייווצר ותועברו למרכז הבקרה של הפרויקט. אחרי זה תוכלו להתחיל להשתמש בשירותי Google Cloud.
הנה פרטים נוספים על כל שלב:
- שם: השם של הפרויקט צריך להיות ייחודי בארגון.
- חשבון לחיוב: אפשר להשתמש בחשבון לחיוב קיים או ליצור חשבון חדש.
- יצירה: אחרי שמזינים את כל הפרטים הנדרשים, לוחצים על הלחצן יצירה כדי ליצור את הפרויקט.
מידע נוסף זמין במאמרי העזרה של Google Cloud בנושא יצירת פרויקטים.
3. פריסת אפליקציית ה-API
מהי מטרת האפליקציה לדוגמה או ה-API?
האפליקציה שלנו היא אפליקציית Inventory API פשוטה שחושפת נקודת קצה ל-API בארכיטקטורת REST עם כמה פעולות להצגת פריטי המלאי ולקבלת מספר המלאי של פריט ספציפי.
אחרי שנפרוס את ה-API, בהנחה שהוא מתארח בכתובת https://<somehost>, נוכל לגשת לנקודות הקצה של ה-API באופן הבא:
https://<somehost>/inventory
יוצגו כל פריטי המוצרים עם רמות המלאי הזמינות.
https://<somehost>/inventory/{productid}
הפעולה הזו תספק רשומה אחת עם מזהה המוצר ורמת המלאי הזמין של המוצר הזה.
הנתונים שמוחזרים בתגובה הם בפורמט JSON.
הערה: אפליקציית ה-API הזו מיועדת למטרות הדגמה בלבד, והיא לא מייצגת הטמעה מאובטחת ויציבה של API. המטרה היא שיהיה לנו יישום מהיר זמין, כדי לבחון את המטרה העיקרית של שיעור ה-Lab, כלומר Google Cloud Operations.
דוגמה לנתונים ולבקשת API ותשובה
האפליקציה לא מבוססת על מסד נתונים בעורף כדי לשמור על פשטות. הוא מכיל 3 מזהי מוצרים לדוגמה ורמות המלאי שלהם.
קוד זיהוי מוצר | רמת המלאי הזמין |
I-1 | 10 |
I-2 | 20 |
I-3 | 30 |
למטה מוצגות דוגמאות לבקשות API ולתשובות:
בקשת API | תגובה מה-API |
https://<somehost>/inventory | [ { "I-1": 10, "I-2": 20, "I-3": 30 }] |
https://<somehost>/inventory/I-1 | { "productid": "I-1", "qty": 10} |
https://<somehost>/inventory/I-2 | { "productid": "I-2", "qty": 20} |
https://<somehost>/inventory/I-200 | { "productid": I-200, "qty": -1} |
שכפול המאגר
אפשר להפעיל את Google Cloud מרחוק מהמחשב הנייד, אבל ב-codelab הזה תשתמשו ב-Google Cloud Shell, סביבת שורת פקודה שפועלת בענן.
ב-GCP Console, לוחצים על סמל Cloud Shell בסרגל הכלים שבפינה הימנית העליונה:

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

המכונה הווירטואלית הזו כוללת את כל הכלים שדרושים למפתחים. יש בה ספריית בית בנפח מתמיד של 5GB והיא פועלת ב-Google Cloud, מה שמשפר מאוד את הביצועים והאימות ברשת. אפשר לבצע את כל העבודה ב-Lab הזה רק באמצעות דפדפן.
הגדרת gcloud
ב-Cloud Shell, מגדירים את מזהה הפרויקט ושומרים אותו כמשתנה PROJECT_ID.
PROJECT_ID=[YOUR-PROJECT-ID]
gcloud config set project $PROJECT_ID
מריצים את הפקודה הבאה:
$ git clone https://github.com/rominirani/cloud-code-sample-repository.git
תיקייה בשם cloud-code-sample-repository תיווצר בתיקייה הזו.
(אופציונלי) הפעלת האפליקציה ב-Cloud Shell
כדי להריץ את האפליקציה באופן מקומי:
- בטרמינל, עוברים לגרסת Python של ה-API באמצעות הפקודה הבאה:
$ cd cloud-code-sample-repository
$ cd python-flask-api
- בטרמינל, מזינים את הפקודה הבאה (בזמן הכתיבה, Cloud Shell מגיע עם Python 3.9.x מותקן, ואנחנו נשתמש בגרסת ברירת המחדל. אם אתם מתכננים להריץ אותו באופן מקומי במחשב הנייד, אתם יכולים להשתמש ב-Python 3.8+:
$ python app.py
- כדי להפעיל את שרת Python באופן מקומי, מריצים את הפקודה הבאה.

לוחצים על 'תצוגה מקדימה ביציאה 8080'. 5. ייפתח חלון בדפדפן. תופיע שגיאת 404 וזה בסדר. משנים את כתובת ה-URL כך שיופיע בה רק /inventory אחרי שם המארח.
לדוגמה, במחשב שלי זה נראה כך:
https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory
תוצג רשימת פריטי המלאי כמו שהוסבר קודם:

- עכשיו אפשר לעצור את השרת. לשם כך, עוברים אל Terminal ומקישים על Ctrl-C.
פריסת האפליקציה
עכשיו נפרס את אפליקציית ה-API הזו ב-Cloud Run. התהליך כלל שימוש בלקוח שורת הפקודה gcloud כדי להריץ את הפקודה לפריסת הקוד ב-Cloud Run.
בטרמינל, מריצים את הפקודה הבאה ב-gcloud:
$ gcloud run deploy --source .
יוצגו לכם כמה שאלות, וחלק מהנקודות מפורטות בהמשך:
- שם השירות (python-flask-api): אפשר להשתמש בשם ברירת המחדל הזה או לבחור שם אחר, למשל my-inventory-api.
- API [run.googleapis.com] not enabled on project [613162942481]. רוצה להפעיל ולנסות שוב (הפעולה תימשך כמה דקות)? (y/N)? Y
- צריך לציין אזור: בוחרים באפשרות 31 (us-west-1)
- API [artifactregistry.googleapis.com] not enabled on project [613162942481]. רוצה להפעיל ולנסות שוב (הפעולה תימשך כמה דקות)? (y/N)? Y
- כדי לבצע פריסה ממקור, צריך מאגר Docker ב-Artifact Registry לאחסון קונטיינרים שנבנו. מאגר בשם [cloud-run-source-deploy] באזור [us-west1] ייווצר.
- להמשיך (Y/n)? Y
- לאפשר הפעלות לא מאומתות ל-[my-inventory-api] (y/N)? Y
בסופו של דבר, התהליך הזה יתחיל את התהליך של לקיחת קוד המקור, יצירת קונטיינר ממנו, העלאה שלו ל-Artifact Registry ואז פריסה של שירות Cloud Run והגרסה שלו. חשוב להמתין בסבלנות עד שהתהליך יסתיים (יכול להימשך 3-4 דקות). בסיום התהליך תוצג כתובת ה-URL של השירות.
דוגמה להרצה:

בדיקת האפליקציה
אחרי שפורסים את האפליקציה ב-Cloud Run, אפשר לגשת לאפליקציית ה-API באופן הבא:
- שימו לב לכתובת ה-URL של השירות מהשלב הקודם. לדוגמה, בהגדרה שלי, הוא מוצג כ-
https://my-inventory-api-bt2r5243dq-uw.a.run.app. נקרא לזה<SERVICE_URL>. - פותחים דפדפן וניגשים ל-3 כתובות ה-URL הבאות של נקודות הקצה (endpoints) של ה-API:
<SERVICE_URL>/inventory<SERVICE_URL>/inventory/I-1<SERVICE_URL>/inventory/I-100
הפורמט צריך להיות זהה לפורמט שצוין בקטע הקודם עם דוגמה לבקשת API ולתגובת API.
קבלת פרטי שירות מ-Cloud Run
פרסנו את שירות ה-API שלנו ב-Cloud Run, סביבת מחשוב ללא שרת. אפשר להיכנס לשירות Cloud Run דרך מסוף Google Cloud בכל שלב.
בתפריט הראשי, עוברים אל Cloud Run. תוצג רשימת השירותים שפועלים ב-Cloud Run. השירות שפרסתם אמור להופיע. בהתאם לשם שבחרתם, אמור להופיע משהו כזה:

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

שימו לב לכתובת ה-URL, שהיא רק כתובת ה-URL של השירות שאפשר להזין בדפדפן ולגשת ל-Inventory API שפרסנו זה עתה. כדאי לעיין במדדים ובפרטים נוספים.
נתחיל עכשיו עם חבילת התפעול של Google Cloud.
4. יצירת נושא Pub/Sub לקבלת התראות
כדי ליצור נושא ב-Pub/Sub, אפשר לפעול לפי השלבים הבאים במסוף Google Cloud:
- מחפשים Pub/Sub בתיבת החיפוש ועוברים אל Pub/Sub.

- אם אתם לא בכרטיסייה נושאים, לוחצים עליה.

- לוחצים על הלחצן Create Topic (יצירת נושא).

- מזינים שם לנושא.

- לוחצים על הלחצן יצירה.

- מעתיקים את שם הנושא באמצעות לחצן סמל ההעתקה. תצטרכו אותו בקטע הבא.

5. יצירת בדיקה של זמני פעילות
כדי ליצור בדיקת זמני פעילות לאפליקציית Google Cloud Run:
- עוברים אל Google Cloud Platform Console.
- לוחצים על הכרטיסייה מעקב.
- לוחצים על הכרטיסייה בדיקות זמינות.
- בחלק העליון של הדף, לוחצים על הלחצן יצירת בדיקת זמינות.

- משתמשים בערכים הבאים:
- פרוטוקול : HTTPS
- סוג המשאב : כתובת URL
- שם המארח : מזינים את החלק של כתובת ה-URL של שירות Cloud Run ללא https. דוגמה מופיעה במסך שלמטה. אם אתם לא בטוחים מה כתובת ה-URL של השירות, נכנסים ל-Cloud Run ממסוף Google Cloud הראשי ועוברים לפרטים של שירות Cloud Run כמו שמוסבר למעלה כדי לקבל את כתובת ה-URL של השירות.
- נתיב : healthy
- באיזו תדירות תתבצע במכשיר בדיקת עדכונים: דקה אחת

- לוחצים על המשך.
- מפעילים את ההגדרה התאמת תוכן מופעלת.
- מזינים את המחרוזת All Izz Well בקטע תוכן התשובה. המחרוזת הזו כבר נמצאת באפליקציה כשהיא שולחת תשובות מלאות.
- Keep

- משאירים את ההגדרה Acceptable HTTP Response Code (קוד תגובת HTTP קביל) על Response Code Classes (סיווגים של קודי תגובה), ומשאירים את 2xx כסיווג היחיד של קוד התגובה. בדרך הזו, רק קודי תגובה עם 2xx ייבדקו במחרוזת, וכל דבר אחר ייחשב אוטומטית כבדיקה שנכשלה.

- לוחצים על המשך.
- בוחרים את נושא Cloud Pub/Sub כערוץ ההתראות ולוחצים על OK.

- לוחצים על המשך.
- הוספת שם שקל לזכור

- לוחצים על הלחצן בדיקה.

- בודקים את ההגדרות ולוחצים על הלחצן יצירה כשמוכנים

בדיקת זמני הפעילות תיצור ותתחיל לעקוב אחרי אפליקציית Cloud Run. אפשר לראות את הסטטוס של בדיקת הזמינות בכרטיסייה Uptime Checks (בדיקות זמינות).

6. מזל טוב
הגדרתם בהצלחה את בדיקת הזמינות לשליחת התראות ל-Pub/Sub.