תוסף Google Cloud Pub/Sub

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

גרסה: 1.3.0

לפרסם הודעות בנושא בשירות 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.

פעולות

פרסם

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

תחביר

<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 שנוצר מקובץ המפתח של חשבון השירות. ללא. כן.