תוסף Google Cloud Pub/Sub

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

גרסה: 1.5.1

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

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

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

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

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

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

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

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

מידע על Cloud Pub/Sub

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

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

טעימות

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

הודעת טקסט

בדוגמה הזו, הפעולה 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>

במדיניות הבאה בנושא הקצאת הודעה, נעשה שימוש בערך של המשתנה שמאחסן את התגובה של התוסף כדי להקצות את המטען הייעודי (payload) של התגובה. מזהה ההודעה שמור במאפיין 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>

במדיניות הבאה בנושא הקצאת הודעה, נעשה שימוש בערך של המשתנה שמאחסן את התגובה של התוסף כדי להקצות את המטען הייעודי (payload) של התגובה. מזהה ההודעה שמור במאפיין 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.

פעולות

publish

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

תחביר

<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, למשל ממסוף GCP של השירות. לדוגמה, שם הנושא עשוי להופיע בצורה projects/GCP-PROJECT-ID/topics/TOPIC-NAME ללא. כן.
credentials כשמזינים אותו במסוף Apigee Edge, זהו התוכן של קובץ המפתח של חשבון השירות. כששולחים פיד דרך ממשק ה-API לניהול, הוא ערך בקידוד base64 שנוצר מקובץ המפתח של חשבון השירות. ללא. כן.