תוסף Google Cloud Pub/Sub

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

גרסה: 2.0.0

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

התוכן הזה מכיל מידע שיעזור לכם להגדיר את התוסף הזה ולהשתמש בו.

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

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

  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 באמצעות מדיניות 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>

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

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