במאמר הזה נסביר איך ליצור נושא Pub/Sub באמצעות Single Message Transforms (SMTs).
מערכות SMT בנושא מאפשרות לבצע שינויים קלים בנתוני ההודעות ובמאפיינים שלהן ישירות ב-Pub/Sub. התכונה הזו מאפשרת טיוב נתונים, סינון או המרת פורמט לפני שההודעות מתפרסמות בנושא.
כדי ליצור נושא עם SMT, אפשר להשתמש במסוף Google Cloud , ב-Google Cloud CLI, בספריית הלקוח או ב-Pub/Sub API.
לפני שמתחילים
תפקידים והרשאות נדרשים
כדי לקבל את ההרשאה שנדרשת ליצירת נושא עם SMT, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Pub/Sub Editor (roles/pubsub.editor) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאה pubsub.topics.create, שנדרשת כדי ליצור נושא עם SMT.
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.
יצירת נושא באמצעות כלים לניהול שיחות
לפני שיוצרים נושא עם כלים לניהול נושאים, כדאי לעיין במסמכי התיעוד בנושא מאפיינים של נושא.
כדי ליצור Pub/Sub עם SMT אחד או יותר, מבצעים את השלבים הבאים. אפשר להפעיל עד 5 כלים לניהול תנועה לכל נושא.
המסוף
נכנסים לדף Topics של Pub/Sub במסוף Google Cloud .
לוחצים על יצירת נושא.
בשדה Topic ID (מזהה הנושא), מזינים מזהה לנושא. מידע נוסף על מתן שמות לנושאים זמין בהנחיות למתן שמות.
בקטע טרנספורמציות, לוחצים על הוספת טרנספורמציה.
בוחרים את סוג הטרנספורמציה. מידע נוסף על סוגי ה-SMT הנתמכים זמין במאמר סוגי SMT.
קובעים את מאפייני ההגדרה של ה-SMT. קבוצת המאפיינים תלויה בסוג ה-SMT. מידע נוסף זמין במאמרי העזרה בנושא סוג ה-SMT הזה.
זה שינוי אופציונלי. כדי לאמת את ה-SMT, לוחצים על אימות. אם ה-SMT תקין, מוצגת ההודעה
"Validation passed". אחרת, תוצג הודעת שגיאה.כדי להוסיף עוד טרנספורמציה, לוחצים על הוספת טרנספורמציה וחוזרים על השלבים הקודמים.
כדי לסדר את ה-SMT בסדר מסוים, לוחצים על העברה למעלה או על העברה למטה. כדי להסיר SMT, לוחצים על מחיקה.
זה שינוי אופציונלי. כדי לבדוק SMT בהודעה לדוגמה, פועלים לפי השלבים הבאים:
לוחצים על בדיקת טרנספורמציות.
בחלון Test transform, בוחרים את הפונקציה שרוצים לבדוק.
בחלון הזנת הודעה, מזינים הודעה לדוגמה.
כדי להוסיף מאפיין להודעה, לוחצים על הוספת מאפיין ומזינים את המפתח והערך של המאפיין. אפשר להוסיף כמה מאפיינים.
לוחצים על בדיקה. התוצאה של החלת ה-SMT על ההודעה מוצגת בקטע הודעת הפלט.
כדי לסגור את החלון Test transforms, לוחצים על Close.
אם יוצרים יותר מ-SMT אחד, אפשר לבדוק את כל רצף השינויים באופן הבא:
- בודקים את ה-SMT הראשון ברצף, כמו שמתואר בשלבים הקודמים.
- בוחרים את ה-SMT הבא. הודעת הקלט מאוכלסת מראש עם הודעת הפלט מהבדיקה הקודמת.
- ממשיכים לבדוק את כללי ה-SMT לפי הסדר, כדי לוודא שכל הרצף פועל כמו שצריך.
כדי ליצור את הנושא, לוחצים על יצירה.
gcloud
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
יוצרים קובץ YAML או JSON שמגדיר SMT אחד או יותר. הגדרת ה-YAML או ה-JSON תלויה בסוג ה-SMT. מידע נוסף זמין במאמר בנושא סוגים של SMT.
אם הקובץ כולל יותר מ-SMT אחד, Pub/Sub מבצע אותם לפי הסדר שבו הם מופיעים.
זה שינוי אופציונלי. כדי לאמת SMT, מריצים את הפקודה
gcloud pubsub message-transforms validate:gcloud pubsub message-transforms validate \ --message-transform-file=TRANSFORM_FILEמחליפים את מה שכתוב בשדות הבאים:
- TRANSFORM_FILE: הנתיב לקובץ YAML או JSON שמגדיר SMT יחיד. אם יוצרים כמה SMT, צריך לאמת כל אחד מהם בנפרד.
זה שינוי אופציונלי. כדי לבדוק SMT אחד או יותר על הודעת Pub/Sub לדוגמה, מריצים את הפקודה
gcloud pubsub message-transforms test:gcloud pubsub message-transforms test \ --message-transforms-file=TRANSFORMS_FILE \ --message=MESSAGE \ --attribute=ATTRIBUTESמחליפים את מה שכתוב בשדות הבאים:
- TRANSFORMS_FILE: הנתיב לקובץ YAML או JSON שמגדיר SMT אחד או יותר.
- MESSAGE: גוף ההודעה לדוגמה.
- ATTRIBUTES: אופציונלי. רשימה מופרדת בפסיקים של מאפייני הודעה. כל מאפיין הוא צמד מפתח/ערך בפורמט
KEY="VALUE".
הפקודה מפעילה את ה-SMT לפי הסדר, והפלט מכל SMT משמש כקלט ל-SMT הבא. הפקודה מציגה את התוצאות של כל שלב.
כדי ליצור את הנושא, מריצים את הפקודה
gcloud pubsub topics create:gcloud pubsub topics create TOPIC_ID \ --message-transforms-file=TRANSFORMS_FILEמחליפים את מה שכתוב בשדות הבאים:
- TOPIC_ID: המזהה או השם של הנושא שרוצים ליצור. הנחיות למתן שם לנושא מופיעות במאמר בנושא שמות משאבים. השם של נושא לא ניתן לשינוי.
- TRANSFORMS_FILE: הנתיב לקובץ YAML או JSON שמגדיר SMT אחד או יותר.
C#
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של C# במאמר הפעלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub C# API.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במאמר תחילת העבודה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Java API.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במאמר תחילת העבודה המהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של ה-API בשפת Python של Pub/Sub.
המשך
בדוגמה הבאה נעשה שימוש בגרסה הראשית של ספריית הלקוח Go Pub/Sub (v2). אם אתם עדיין משתמשים בספרייה בגרסה 1, כדאי לעיין במדריך להעברה לגרסה 2. כדי לראות רשימה של דוגמאות קוד מגרסה 1, אפשר לעיין ב דוגמאות הקוד שהוצאו משימוש.
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Go במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Go API.