במאמר הזה מוסבר איך לעדכן Single Message Transform (SMT) למינוי Pub/Sub. השינויים ב-SMT נכנסים לתוקף תוך כמה דקות. במקרה של כלים לניהול מינויים, השינויים יחולו על הודעות חדשות שיישלחו למינוי אחרי עדכון ה-UDF.
כדי לעדכן את ה-SMT של מינוי, אפשר להשתמש במסוף Cloud de Confiance , ב-Google Cloud CLI, בספריית הלקוח או ב-Pub/Sub API.
תפקידים והרשאות נדרשים
כדי לקבל את ההרשאות שנדרשות לעדכון של SMT במינוי, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Pub/Sub Editor (roles/pubsub.editor) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה מכיל את ההרשאות שנדרשות לעדכון של SMT במינוי. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לעדכן את ה-SMT של המינוי, נדרשות ההרשאות הבאות:
-
נותנים לעדכון הרשאה למינוי במינוי:
projects.subscriptions.patch -
נותנים לתצוגה הרשאת מינוי בפרויקט. ההרשאה הזו נדרשת רק אם משתמשים במסוף Cloud de Confiance :
pubsub.subscriptions.view
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
אפשר להגדיר בקרת גישה ברמת הפרויקט וברמת המשאב הספציפי.
עדכון של SMT למינוי
כדי לעדכן את ה-SMT של מינוי:
המסוף
-
נכנסים לדף Subscriptions של Pub/Sub במסוף Cloud de Confiance .
-
לוחצים על המינוי שרוצים לערוך בו את כללי ה-SMT.
-
בדף פרטי המינוי, לוחצים על עריכה.
בכרטיסייה Transforms מופיעים כל ה-SMT שמצורפים למינוי.
-
בדף 'עריכת מינוי', אפשר לבצע את המשימות הבאות:
-
הוספת SMT חדש. לוחצים על הוספת טרנספורמציה.
-
עריכה של SMT קיים מרחיבים את ה-SMT כדי לערוך אותו.
-
מסדרים מחדש את ה-SMT. משתמשים בחיצים למעלה ולמטה.
-
מחיקת SMT. לוחצים על לחצן המחיקה.
-
-
לוחצים על עדכון.
gcloud
-
במסוף Cloud de Confiance , מפעילים את Cloud Shell.
בחלק התחתון של Cloud de Confiance המסוף יתחיל סשן של 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 במזהה או בשם של המינוי שרוצים לעדכן.
-