במאמר הזה מוסבר איך לפרסם הודעות בנושא עם סכימה.
לפני שמתחילים
לפני שמגדירים את תהליך העבודה של הפרסום, צריך לוודא שביצעתם את המשימות הבאות:
- הסבר על סכימות של Pub/Sub.
- משייכים סכימה לנושא.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות לפרסום הודעות בנושא, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד פרסום הודעות ב-Pub/Sub (roles/pubsub.publisher) בנושא.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
כדי ליצור או לעדכן נושאים ומינויים, צריך הרשאות נוספות.פרסום הודעות עם סכימה
אפשר לפרסם הודעות בנושא שמשויך לסכימה. צריך לקודד את ההודעות בסכימה ובפורמט שציינתם כשיצרתם את הנושא. הודעה תואמת לסכימה שמשויכת לנושא אם היא תואמת לכל אחת מהגרסאות של הסכימה בטווח הגרסאות המותר. ההודעות נבדקות מול הגרסאות לפי הסדר, מהגרסה האחרונה המותרת ועד שנמצאת התאמה או שמגיעים לגרסה הכי ישנה המותרת. Pub/Sub מוסיף את המאפיינים הבאים להודעה שפורסמה בהצלחה בנושא שמשויך לסכימה:
googclient_schemaname: השם של הסכימה שמשמשת לאימות.
googclient_schemaencoding: הקידוד של ההודעה, JSON או BINARY.
googclient_schemarevisionid: מזהה הגרסה של הסכימה שמשמשת לניתוח ולאימות של ההודעה. לכל גרסה יש מזהה גרסה ייחודי שמשויך אליה. מזהה הגרסה הקודמת הוא מזהה ייחודי אוניברסלי (UUID) בן שמונה תווים שנוצר באופן אוטומטי.
אם הודעה לא תואמת לאף אחת מהגרסאות של הסכימה שמותרות בנושא, Pub/Sub מחזיר שגיאה INVALID_ARGUMENT לבקשת הפרסום.
Pub/Sub מעריך הודעות רק מול עדכוני סכימה בזמן הפרסום. ביצוע של קומיט לגרסה חדשה של סכימה או שינוי הסכימה שמשויכת לנושא אחרי פרסום הודעה לא גורמים להערכה מחדש של ההודעה או לשינוי של מאפייני ההודעה שמשויכים לסכימה.
אפשר לפרסם הודעות בנושא עם סכימה משויכת בפרויקט Google Cloud באמצעות מסוף Google Cloud, ה-CLI של gcloud, Pub/Sub API או ספריות הלקוח ב-Cloud.
gcloud
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
מפרסמים הודעת לדוגמה באמצעות הפקודה gcloud pubsub topics publish.
gcloud pubsub topics publish TOPIC_ID \ --message=MESSAGEמחליפים את מה שכתוב בשדות הבאים:
TOPIC_ID: שם הנושא שכבר יצרתם.
MESSAGE: ההודעה פורסמה בנושא. דוגמה להודעה:
{"name": "Alaska", "post_abbr": "AK"}.
C++
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של C++ במאמר תחילת העבודה המהירה: שימוש בספריות לקוח. מידע נוסף זמין במאמרי העזרה של Pub/Sub C++ API.
Avro ProtoC#
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של C# במאמר הפעלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub C# API.
Avro Protoהמשך
בדוגמה הבאה נעשה שימוש בגרסה הראשית של ספריית הלקוח Go Pub/Sub (v2). אם אתם עדיין משתמשים בספרייה v1, כדאי לעיין במדריך להעברה לגרסה v2. כדי לראות רשימה של דוגמאות קוד מגרסה 1, אפשר לעיין ב דוגמאות הקוד שהוצאו משימוש.
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Go במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Go API.
Avro ProtoJava
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במאמר התחלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Java API.
Avro ProtoNode.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במאמר הפעלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Node.js API.
Avro Protocol BufferNode.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במאמר הפעלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Node.js API.
Avro Protocol BufferPHP
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של PHP במאמר התחלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub PHP API.
Avro Protocol BufferPython
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במאמר תחילת העבודה המהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של ה-API בשפת Python של Pub/Sub.
Avro Protocol BufferRuby
בדוגמה הבאה נעשה שימוש בספריית הלקוח של Ruby Pub/Sub בגרסה 3. אם אתם עדיין משתמשים בספרייה v2, כדאי לעיין במדריך להעברה לגרסה v3. כדי לראות רשימה של דוגמאות קוד של Ruby v2, אפשר לעיין ב דוגמאות הקוד שהוצאו משימוש.
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Ruby במאמר תחילת העבודה המהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Ruby API.
Avro Protocol Bufferהמאמרים הבאים
כדי להגביל את המיקומים שבהם Pub/Sub מאחסן נתוני הודעות, אפשר לעיין במאמר בנושא הגבלת מיקומי משאבים ב-Pub/Sub.
מידע נוסף על קבלת הודעות זמין במאמר בחירת סוג מינוי.