במאמר הזה מוסבר איך אפשר לעקוב אחרי שינויים בסטטוס של עבודות ומשימות באמצעות הגדרת התראות Pub/Sub. אפשר להשתמש בהתראות למגוון תרחישי שימוש. לדוגמה, במאמר הזה מוסבר איך להזרים את ההתראות לטבלה ב-BigQuery, שבה אפשר להשתמש כדי לנתח את הנתונים. מידע נוסף על תרחישים לדוגמה של התראות ב-Pub/Sub זמין במאמר בחירת סוג מינוי במסמכי Pub/Sub.
לחלופין, אם רוצים לייצא את כל המידע על משימה ל-BigQuery, אפשר לעיין במאמר ייצוא מידע על משימות.
לפני שמתחילים
- אם עוד לא השתמשתם ב-Batch, כדאי לעיין במאמר תחילת העבודה עם Batch ולהפעיל את Batch על ידי השלמת הדרישות המוקדמות לפרויקטים ולמשתמשים.
- כדי להגדיר התראות Pub/Sub לעבודות Batch, מבצעים את הפעולות הבאות:
-
מפעילים את Pub/Sub API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידים -
כדי לקבל את ההרשאות שנדרשות להגדרת נושא ומינוי ב-Pub/Sub, צריך לבקש מהאדמין להקצות לכם את התפקיד עריכה ב-Pub/Sub (
roles/pubsub.editor) ב-IAM בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
-
- הדרישות הנוספות משתנות בהתאם לסוג המינוי שבוחרים להגדיר. לדוגמה, אם רוצים להזרים ולנתח התראות בטבלה ב-BigQuery, צריך לבצע את הפעולות הבאות:
-
מפעילים את BigQuery API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידים -
כדי לוודא שלחשבון השירות של 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.
- טבלה: בוחרים את הטבלה שיצרתם בשלב הקודם.
- בוחרים באפשרות שימוש בסכימת נושא.
- לוחצים על כתיבת מטא-נתונים.
מעכשיו, בכל פעם שהתראה של 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