במאמר הזה מוסבר איך לעדכן Single Message Transform (SMT) עבור מינוי ל-Pub/Sub. השינויים ב-SMT נכנסים לתוקף תוך כמה דקות. במקרה של SMT למינויים, השינויים ייכנסו לתוקף בהודעות חדשות שיועברו למינוי אחרי שה-UDF יעודכן.
כדי לעדכן את ה-SMT של מינוי, אפשר להשתמש במסוף Google Cloud , ב-Google Cloud CLI, בספריית הלקוח או ב-Pub/Sub API.
תפקידים והרשאות נדרשים
כדי לקבל את ההרשאות שנדרשות לעדכון SMT של מינויים, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד עריכה ב-Pub/Sub (roles/pubsub.editor) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה מכיל את ההרשאות שנדרשות לעדכון של SMT במינוי. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לעדכן את ה-SMT של המינוי, נדרשות ההרשאות הבאות:
-
נותנים לעדכון הרשאת מינוי במינוי:
projects.subscriptions.patch -
נותנים לפרויקט הרשאה לצפייה במינוי. ההרשאה הזו נדרשת רק אם משתמשים במסוף Google Cloud :
pubsub.subscriptions.view
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
אפשר להגדיר בקרת גישה ברמת הפרויקט וברמת המשאב הספציפי.
עדכון ה-SMT של המינוי
כדי לעדכן את ה-SMT של המינוי:
המסוף
-
נכנסים לדף Subscriptions במסוף Google Cloud Pub/Sub.
-
לוחצים על המינוי שרוצים לערוך את כללי ה-SMT שלו.
-
בדף פרטי המינוי, לוחצים על עריכה.
בכרטיסייה Transforms (טרנספורמציות) מופיעה רשימה של כל כללי ה-SMT שמצורפים למינוי.
-
בדף 'עריכת מינוי', אפשר לבצע את המשימות הבאות:
-
מוסיפים SMT חדש. לוחצים על הוספת טרנספורמציה.
-
עריכה של SMT קיים. מרחיבים את ה-SMT כדי לערוך אותו.
-
מסדרים מחדש את ה-SMT. משתמשים בחיצים למעלה ולמטה.
-
למחוק SMT. לוחצים על כפתור המחיקה.
-
-
לוחצים על עדכון.
gcloud
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
-
מריצים את הפקודה
gcloud pubsub subscriptions update:gcloud pubsub subscriptions update SUBSCRIPTION_ID \ --message-transforms-file=TRANSFORMS_FILE
מחליפים את מה שכתוב בשדות הבאים:
-
SUBSCRIPTION_ID: המזהה או השם של המינוי שרוצים לעדכן.
-
TRANSFORMS_FILE: הנתיב לקובץ ה-YAML או ה-JSON שמכיל את כללי התנועה המעודכנים.
דוגמה לקובץ המרות YAML:
- javascriptUdf: code: > function redactSSN(message, metadata) { const data = JSON.parse(message.data); delete data['ssn']; message.data = JSON.stringify(data); return message; } functionName: redactSSN - javascriptUdf: code: > function filterHighAmount(message, metadata) { const data = JSON.parse(message.data); if (data['amount'] > 100 ) { return null; } return message; } functionName: filterHighAmount
כדי לנקות את כל ה-SMT מהמינוי, משתמשים בפקודה הבאה:
gcloud pubsub subscriptions update SUBSCRIPTION_ID --clear-message-transforms
מחליפים את SUBSCRIPTION_ID במזהה או בשם של המינוי שרוצים לעדכן.
-