עדכון של SMT בנושא

במאמר הזה מוסבר איך לעדכן Single Message Transform ‏ (SMT) בנושא Pub/Sub. השינויים ב-SMT נכנסים לתוקף תוך כמה דקות. במקרה של SMTs של נושאים, השינויים חלים על הודעות חדשות שפורסמו אחרי שה-SMT עודכן.

כדי לעדכן את ה-SMT של נושא, אפשר להשתמש במסוף, ב-Google Cloud CLI, בספריית הלקוח או ב-Pub/Sub API. Google Cloud

תפקידים והרשאות נדרשים

כדי לקבל את ההרשאה שנדרשת לעדכון של SMT בנושא, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ Pub/Sub Editor (roles/pubsub.editor) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקיד המוגדר מראש הזה מכיל את ההרשאה pubsub.topics.update, שנדרשת כדי לעדכן את ה-SMT של נושא.

יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.

אפשר להגדיר בקרת גישה ברמת הפרויקט וברמת המשאב הספציפי.

עדכון של SMT בנושא

כדי לעדכן את כללי ה-SMT של נושאים:

המסוף

  1. נכנסים לדף Topics של Pub/Sub במסוף Google Cloud .

    לדף Topics

  2. לוחצים על הנושא שרוצים לערוך את ה-SMT שלו.

  3. בדף הפרטים של הנושא, לוחצים על עריכה.

    בכרטיסייה Transforms (טרנספורמציות) מפורטים כל ה-SMT שמצורפים לנושא.

  4. בדף 'עריכת נושא', אפשר לבצע את המשימות הבאות:

    1. הוספת SMT חדש. לוחצים על הוספת טרנספורמציה.

    2. עריכה של SMT קיים מרחיבים את ה-SMT כדי לערוך אותו.

    3. מסדרים מחדש את ה-SMT. משתמשים בחיצים למעלה ולמטה.

    4. מחיקת SMT. לוחצים על לחצן המחיקה.

  5. לוחצים על עדכון.

gcloud

  1. במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. מריצים את הפקודה gcloud pubsub topics update:

    gcloud pubsub topics update TOPIC_ID \
        --message-transforms-file=TRANSFORMS_FILE

    מחליפים את מה שכתוב בשדות הבאים:

    • TOPIC_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 topics update TOPIC_ID --clear-message-transforms

    מחליפים את TOPIC_ID במזהה או בשם של הנושא שרוצים לעדכן.

המאמרים הבאים