במאמר הזה נסביר איך אפשר לעקוב אחרי שינויים בסטטוס של עבודות ומשימות באמצעות הגדרת התראות Pub/Sub. אפשר להשתמש בהתראות למגוון תרחישי שימוש. לדוגמה, במאמר הזה מוסבר איך להזרים את ההתראות לטבלה ב-BigQuery, שבה אפשר לנתח את הנתונים. מידע נוסף על תרחישים לדוגמה של התראות ב-Pub/Sub זמין במאמר בחירת סוג מינוי במסמכי Pub/Sub.
לחלופין, אם רוצים לייצא את כל המידע על משימה ל-BigQuery, אפשר לעיין במאמר ייצוא מידע על משימות.
לפני שמתחילים
- אם עוד לא השתמשתם ב-Batch, כדאי לעיין במאמר תחילת העבודה עם Batch ולהפעיל את Batch על ידי השלמת הדרישות המוקדמות לפרויקטים ולמשתמשים.
- אם רוצים להגדיר התראות Pub/Sub לעבודות Batch, צריך לבצע את הפעולות הבאות:
-
מפעילים את Pub/Sub API, אם הוא עדיין לא מופעל.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים -
כדי לקבל את ההרשאות שנדרשות להגדרת נושא ומינוי ב-Pub/Sub, צריך לבקש מהאדמין להקצות לכם את התפקיד עריכה ב-Pub/Sub (
roles/pubsub.editor) ב-IAM בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
-
- הדרישות הנוספות משתנות בהתאם לסוג המינוי שבוחרים להגדיר. לדוגמה, אם רוצים להזרים ולנתח התראות בטבלת BigQuery, צריך לבצע את הפעולות הבאות:
-
אם BigQuery API לא מופעל, מפעילים אותו.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים -
כדי לוודא שלחשבון השירות של Pub/Sub יש את ההרשאות הנדרשות להזרמת התראות Pub/Sub ל-BigQuery, צריך לבקש מהאדמין להקצות לחשבון השירות של Pub/Sub את תפקיד ה-IAM BigQuery Data Editor (
roles/bigquery.dataEditor) בפרויקט של נושא ה-Pub/Sub.מידע נוסף על הקצאת התפקיד הזה זמין במאמר הקצאת תפקידים ב-BigQuery לחשבון השירות של Pub/Sub.
- מוודאים שלמשתמשים שרוצים לנתח את ההתראות ב-BigQuery יש את ההרשאות הנדרשות.
כדי לקבל את ההרשאות שדרושות לשליחת שאילתות לגבי התראות Pub/Sub ב-BigQuery, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- BigQuery Job User (
roles/bigquery.jobUser) בפרויקט של טבלת BigQuery - BigQuery Data Viewer (צפייה בנתוני BigQuery)
roles/bigquery.dataViewerבטבלה ב-BigQuery
- BigQuery Job User (
-
הגדרת התראות Pub/Sub ל-Batch
Batch תומך בהתראות Pub/Sub על שינויים במצבי העבודה והמשימות, ואפשר להשתמש בהן להתראות, לניתוח או לשיפור יכולת הצפייה.
כדי להגדיר התראות Pub/Sub למשימות Batch, צריך לבצע את השלבים שמפורטים בקטעים הבאים:
- יוצרים או מזהים נושא Pub/Sub לעבודות Batch.
- צריך ליצור לפחות מינוי אחד לנושא כדי לקבל את ההתראות שלו ולהשתמש בהן.
- מגדירים את העבודות כך שישלחו התראות לנושא.
אחרי שמגדירים התראות Pub/Sub ל-Batch, אפשר להגדיר לכל משימה לשלוח התראות ספציפיות. אתם יכולים לקבל התראות בכל פעם שמשתנה הסטטוס של עבודה או משימה, או לסנן את ההתראות לפי סטטוסים ספציפיים של עבודות או משימות. חשוב לציין ש-Pub/Sub לא שולח התראות לגבי המצב הראשון שאליו נכנסת משימה או עבודה. הוא שולח התראות רק כשמשימה עוברת ממצב אחד למצב אחר.
מידע נוסף על המאפיינים שאפשר להגדיר להתראות Pub/Sub זמין במאמר יצירה והפעלה של משימה לשליחת התראות סטטוס של Pub/Sub.
יצירה או זיהוי של נושא Pub/Sub ל-Batch
יוצרים נושא Pub/Sub חדש או מזהים נושא Pub/Sub קיים שרוצים להשתמש בו להתראות על פעולות בחשבון.
כמו שמוסבר בהמשך המסמך, אי אפשר לשלוח התראות לנושא הזה ב-Pub/Sub עד שהאדמין ייתן הרשאות נוספות שיאפשרו זאת.
יצירת מינוי לקבלת ההתראות ולשימוש בהן
כדי לקבל הודעות שפורסמו בנושא Pub/Sub ולהשתמש בהן, צריך ליצור לפחות מינוי אחד לנושא הזה.
לדוגמה, אפשר להגדיר את הנושא כך שההתראות שלו יועברו בסטרימינג אל BigQuery. לאחר מכן, כשמריצים משימות שמפרסמות התראות, אפשר לקבל ולנתח את ההתראות בטבלה ב-BigQuery. מידע נוסף זמין במאמר הזה בקטע דוגמה: קבלת התראות מ-Pub/Sub ושימוש בהן ב-BigQuery.
אפשר גם לעיין בסקירה כללית של מינויים במסמכי Pub/Sub כדי לקבל מידע נוסף על מינויים ואפשרויות מינוי אחרות.
הגדרת משימות לשליחת התראות לנושא
כדי להגדיר עבודות ששולחות התראות Pub/Sub לנושא שלכם, פועלים לפי ההוראות בדף יצירה והפעלה של עבודה ששולחת התראות סטטוס ב-Pub/Sub. באופן ספציפי, צריך לבצע את הפעולות הבאות:
- אם עדיין לא עשיתם את זה, בקשו מהאדמין להעניק את כל ההרשאות שנדרשות כדי שהעבודות ישלחו התראות לנושא Pub/Sub. ההרשאות האלה מפורטות בקטע Required roles בדף הזה.
- יוצרים ומריצים ג'וב שמפעיל התראות Pub/Sub על ידי הגדרת השדה
notificationsשל הג'וב.
דוגמה: קבלת התראות Pub/Sub ושימוש בהן ב-BigQuery
בקטעים הבאים מוסבר על תרחיש לדוגמה של קבלת התראות Pub/Sub ושימוש בהן ב-BigQuery. אם מגדירים מינוי שמעביר את ההתראות של הנושא ב-Pub/Sub לטבלת BigQuery, אפשר לשמור את ההיסטוריה של השינויים במצב של עבודות ומשימות ולשאול שאלות לגבי השינויים האלה.
הגדרת מינוי להזרמת התראות ל-BigQuery
כדי להגדיר מינוי ל-Pub/Sub שמעביר התראות מנושא לטבלה ב-BigQuery, מבצעים את הפעולות הבאות:
אם עדיין לא עשיתם זאת, צרו נושא Pub/Sub או זהו נושא קיים עבור Batch.
אם עדיין אין לכם מערך נתונים, צרו מערך נתונים ב-BigQuery.
יוצרים טבלה ב-BigQuery עם הגדרת הסכימה הבאה:
[ { "name": "data", "type": "STRING" }, { "name": "subscription_name", "type": "STRING" }, { "name": "message_id", "type": "STRING" }, { "name": "attributes", "type": "JSON" }, { "name": "publish_time", "type": "TIMESTAMP", "mode": "NULLABLE" } ]יוצרים מינוי ל-Pub/Sub שמעביר נתונים ל-BigQuery ומציינים את האפשרויות הבאות:
- נושא: בוחרים את נושא Pub/Sub עבור Batch.
- פרויקט: בוחרים את הפרויקט שמכיל את הטבלה ב-BigQuery.
- מערך נתונים: בוחרים את מערך הנתונים שמכיל את הטבלה ב-BigQuery.
- טבלה: בוחרים את הטבלה שיצרתם בשלב הקודם.
- בוחרים באפשרות Use topic schema (שימוש בסכימת נושא).
- בוחרים באפשרות כתיבת מטא-נתונים.
מעכשיו, בכל פעם שהתראת Pub/Sub נשלחת לנושא הזה, Pub/Sub מעביר את ההתראה לטבלה ב-BigQuery. אחרי שמגדירים את העבודות לשליחת התראות Pub/Sub, אפשר לנתח את ההתראות ב-BigQuery.
ניתוח התראות ב-BigQuery
אפשר לנתח את ההתראות ב-BigQuery אחרי שמגדירים מינוי לטבלה ב-BigQuery בנושא ומריצים משימות ששולחות התראות לנושא. כדי לנתח את ההתראות ב-BigQuery, מריצים שאילתה בעמודה attributes של טבלה ב-BigQuery. המאפיינים שאפשר לשלוח לגביהם שאילתות תלויים בהגדרות ההתראות שהגדרתם למשימות או לעבודות.
אפשר לשלוח שאילתות לגבי המאפיינים הבאים של התראות על משימות:
JobUIDNewTaskStateRegionTaskNameTaskUIDType
אפשר לשלוח שאילתות לגבי המאפיינים הבאים של התראות על משרות:
JobUIDJobNameNewJobStateRegionType
לדוגמה, השאילתה הבאה מציגה את JobUID שמשויך לכל התראה:
select attributes.JobUID from `example-table`
המאמרים הבאים
- איך יוצרים ומריצים ג'וב ששולח התראות סטטוס ב-Pub/Sub
- מידע נוסף על מינויים ב-Pub/Sub
- מידע נוסף על ניתוח הנתונים ב-BigQuery