במאמר הזה מוסבר איך לאמת סכימות של נושאי Pub/Sub.
אתם יכולים לוודא שההודעות תואמות לסכימה מסוימת, לפני או אחרי שאתם יוצרים משאב סכימה. השלב הזה מבטיח שההודעות שאתם מתכוונים לשלוח דרך נושא שמשויך לסכימה באמת תואמות לסכימה לפני שהיא מוחלת.
לפני שמתחילים
- הסבר על סכימות של Pub/Sub
- יוצרים סכימה.
תפקידים והרשאות נדרשים
כדי לקבל את ההרשאות שנדרשות לאימות הודעות סכימה ולניהול שלהן, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד עריכה ב-Pub/Sub (roles/pubsub.editor) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות לאימות הודעות סכימה ולניהול שלהן. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לאמת הודעות סכימה ולנהל אותן, נדרשות ההרשאות הבאות:
-
יצירת סכימה:
pubsub.schemas.create -
צירוף סכימה לנושא:
pubsub.schemas.attach -
שליחת גרסה של סכימה:
pubsub.schemas.commit -
מחיקת סכימה או גרסה של סכימה:
pubsub.schemas.delete -
קבלת סכימה או עדכונים לסכימה:
pubsub.schemas.get -
רשימת סכימות:
pubsub.schemas.list -
רשימת עדכונים בסכימה:
pubsub.schemas.listRevisions -
החזרה של סכימה למצב קודם:
pubsub.schemas.rollback -
אימות הודעה:
pubsub.schemas.validate -
קבלת מדיניות IAM של סכימה:
pubsub.schemas.getIamPolicy -
מגדירים את מדיניות ה-IAM לסכימה:
pubsub.schemas.setIamPolicy
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
אתם יכולים להעניק תפקידים והרשאות לחשבונות ראשיים כמו משתמשים, קבוצות, דומיינים או חשבונות שירות. אפשר ליצור סכימה בפרויקט אחד ולצרף אותה לנושא שנמצא בפרויקט אחר. מוודאים שיש לכם את ההרשאות הנדרשות לכל פרויקט.
אימות הודעה לפי סכימה
המסוף
נכנסים לדף Pub/Sub schemas במסוף Google Cloud .
רשימת הסכימות מוצגת.
לוחצים על מזהה הסכימה של סכימה קיימת.
ייפתח הדף פרטי הסכימה של הסכימה.
בקטע Revisions, לוחצים על הגרסה שרוצים לאמת את ההודעה שלה.
בקטע פרטים, לוחצים על הודעת בדיקה.
בחלון Test message (הודעת בדיקה), בוחרים סוג של Message encoding (קידוד הודעה).
כותבים הודעה לבדיקה בגוף ההודעה Message.
לוחצים על בדיקה.
gcloud
-
מפעילים את Cloud Shell במסוף Google Cloud .
בחלק התחתון של מסוף Google Cloud יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
- כדי לאמת הודעה לפי סכימה, משתמשים בפקודה gcloud pubsub schemas validate-message.
gcloud pubsub schemas validate-message --message=MESSAGE \ --message-encoding=MESSAGE_ENCODING \ (--schema-name=SCHEMA_NAME | \ --type=TYPE \ (--definition=DEFINITION | \ --definition-file=DEFINITION_FILE))מחליפים את מה שכתוב בשדות הבאים:
MESSAGE: הודעה לאימות מול הסכימה
MESSAGE_ENCODING: הקידוד של ההודעה. מציינים אחד מהערכים הבאים:
binaryאוjson.SCHEMA_NAME: השם או הנתיב המלא של סכימה קיימת.
TYPE: סוג הסכימה המוטבעת. מציינים אחד מהערכים הבאים:
avroאוprotocol-buffer.DEFINITION: הגדרת סכימה מוטבעת.
DEFINITION_FILE: קובץ שמכיל את הגדרת הסכימה.