תוסף Google Cloud Pub/Sub

אתם צופים במסמכי התיעוד של Apigee Edge.
אפשר לעבור אל מסמכי התיעוד של Apigee X.
מידע

גרסה: 2.0.2

פרסום הודעות בנושא בשירות Google Cloud Pub/Sub.

התוכן הזה מספק הפניה להגדרת התוסף הזה ולשימוש בו.

דרישות מוקדמות

לפני שמשתמשים בתוסף משרת proxy של API באמצעות מדיניות ExtensionCallout, צריך:

  1. יוצרים נושא ב-Cloud Pub/Sub, כמו שמתואר במדריך למתחילים: שימוש במסוף.

  2. אחרי שיוצרים את הנושא, צריך להעניק הרשאה לפרסום בנושא Cloud Pub/Sub. לדוגמה, אפשר להשתמש בהרשאה roles/pubsub.publisher כדי לפרסם בנושאים. מידע נוסף על תפקידים ב-Cloud Pub/Sub זמין במאמר בקרת גישה.

  3. שימוש במסוף Google Cloud כדי ליצור מפתח לחשבון השירות.

  4. משתמשים בתוכן של קובץ ה-JSON של המפתח שנוצר כשמוסיפים ומגדירים את התוסף באמצעות הפניה להגדרות.

מידע על Cloud Pub/Sub

Cloud Pub/Sub מספק העברת הודעות אסינכרונית מסוג רבים לרבים, שמפרידה בין השולחים לבין המקבלים. ‫Cloud Pub/Sub מספק העברת הודעות עמידה עם השהיה נמוכה, שעוזרת למפתחים לשלב במהירות מערכות שמתארחות ב-Google Cloud ובאופן חיצוני.

אם אתם רק מתחילים להשתמש ב-Cloud Pub/Sub, כדאי לעיין במדריכים למתחילים במסמכי התיעוד של Cloud Pub/Sub.

דוגמאות

בדוגמאות הבאות אפשר לראות איך מגדירים תמיכה בפעולות של תוסף Cloud Pub/Sub באמצעות מדיניות ExtensionCallout.

הודעת טקסט

בדוגמה הזו, הפעולה publish מפרסמת הודעה כמחרוזת בנושא שצוין בהגדרות התוסף. פעולת publish מחזירה את המזהה של ההודעה שפורסמה בנושא שאליו היא פורסמה, וכותבת אותו למשתנה שצוין בתג <Output>:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Publish-Message">
    <DisplayName>Publish Message</DisplayName>
    <Connector>cloud-pub-sub-extension-example</Connector>
    <Action>publish</Action>
    <Input><![CDATA[
      {
          "message" : "My test message."
      }
    ]]></Input>
    <Output>topic.message</Output>
</ConnectorCallout>

מדיניות Assign Message הבאה משתמשת בערך של המשתנה שמאחסן את התגובה של התוסף כדי להקצות את מטען התגובה. מזהה ההודעה מאוחסן במאפיין messageId של משתנה הפלט:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Topic-Message-ID">
    <DisplayName>Get Topic Message ID</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{topic.message.messageId}</Payload>
    </Set>
</AssignMessage>

נתוני התגובה מוחזרים בפורמט JSON:

{"messageId":"165918654986954"}

לכן, הערך של topic.message.messageId הוא 165918654986954.

הודעת JSON

בדוגמה הזו, הפעולה publish מפרסמת הודעה בפורמט JSON לנושא שצוין בהגדרות התוסף. פעולת publish מחזירה את המזהה של ההודעה שפורסמה בנושא שאליו היא פורסמה, וכותבת אותו למשתנה שצוין בתג <Output>:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Publish-Message">
    <DisplayName>Publish Message</DisplayName>
    <Connector>cloud-pub-sub-extension-example</Connector>
    <Action>publish</Action>
    <Input><![CDATA[
      {
          "message" : { "info" : "My test message" }
      }
    ]]></Input>
    <Output>topic.message</Output>
</ConnectorCallout>

מדיניות Assign Message הבאה משתמשת בערך של המשתנה שמאחסן את התגובה של התוסף כדי להקצות את מטען התגובה. מזהה ההודעה מאוחסן במאפיין messageId של משתנה הפלט:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Topic-Message-ID">
    <DisplayName>Get Topic Message ID</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{topic.message.messageId}</Payload>
    </Set>
</AssignMessage>

נתוני התגובה מוחזרים בפורמט JSON:

{"messageId":"165918654986954"}

לכן, הערך של topic.message.messageId הוא 165918654986954.

פעולות

פרסם

הפעולה מפרסמת הודעה בנושא שצוין בהגדרות התוסף.

תחביר

<Action>publish</Action>
<Input><![CDATA[{
  "message" : "message-to-publish" | JSON-structured-data,
  "customAttributes": JSON-array
}]]></Input>

דוגמה למחרוזת

<Action>publish</Action>
<Input><![CDATA[
  {
      "message" : "My test message."
  }
]]></Input>

דוגמה לנתונים מובנים בפורמט JSON

<Action>publish</Action>
<Input><![CDATA[
  {
      "message" : { "info" : "My test message" }
  }
]]></Input>

דוגמה למאפיינים מותאמים אישית

<Action>publish</Action>
<Input><![CDATA[
  {
      "message" : { "info" : "My test message" },
      "customAttributes": {"attr1": "foo", "attr2": "bar"}
  }
]]></Input>

פרמטרים של בקשה

פרמטר תיאור סוג ברירת מחדל חובה
הודעה ההודעה לפרסום. אפשר להשתמש במחרוזת או לעצב את ההודעה באמצעות JSON. מחרוזת או JSON ללא כן
customAttributes

מאפיינים מותאמים אישית שרוצים להוסיף להודעה בטופס:

"customAttributes": {"attr1": "foo", "attr2": "bar"}.
מערך JSON ללא לא

תשובה

‫JSON שמכיל את המזהה של ההודעה כפי שפורסמה בנושא. לדוגמה:

{"messageId":"165918654986954"}

הסבר על ההגדרות

כשמגדירים ופורסים את התוסף הזה לשימוש בשרתי proxy ל-API, צריך להשתמש בפרטים הבאים.

מאפיינים נפוצים של תוספים

המאפיינים הבאים קיימים בכל תוסף.

נכס תיאור ברירת המחדל נדרש
name השם שבחרת לתצורה הזו של התוסף. ללא כן
packageName השם של חבילת התוסף כפי שהוא סופק על ידי Apigee Edge. ללא כן
version מספר הגרסה של חבילת התוסף שממנה מגדירים את התוסף. ללא כן
configuration ערך הגדרה ספציפי לתוסף שרוצים להוסיף. מאפיינים לחבילת תוספים זו ללא כן

מאפיינים של חבילת התוספים הזו

נכס תיאור ברירת מחדל חובה
topic הנושא לפרסום. אפשר לקבל את הערך הזה משירות Pub/Sub, למשל ממסוף Google Cloud של השירות. לדוגמה, שם הנושא יכול להיות projects/GCP-PROJECT-ID/topics/TOPIC-NAME ללא. כן.
credentials כשמזינים אותו במסוף Apigee Edge, זה התוכן של קובץ המפתח של חשבון השירות. כששולחים אותו באמצעות Management API, זהו ערך בקידוד Base64 שנוצר מקובץ המפתח של חשבון השירות. ללא. כן.