עדכון של SMT למינוי

במאמר הזה מוסבר איך לעדכן 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 של המינוי:

המסוף

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

    אל הדף "מינויים"

  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 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 במזהה או בשם של המינוי שרוצים לעדכן.

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