אתם צופים במסמכי התיעוד של Apigee Edge.
אפשר לעבור אל מסמכי התיעוד של Apigee X. מידע
גרסה: 2.0.2
פרסום הודעות בנושא בשירות Google Cloud Pub/Sub.
התוכן הזה מספק הפניה להגדרת התוסף הזה ולשימוש בו.
דרישות מוקדמות
לפני שמשתמשים בתוסף משרת proxy של API באמצעות מדיניות ExtensionCallout, צריך:
יוצרים נושא ב-Cloud Pub/Sub, כמו שמתואר במדריך למתחילים: שימוש במסוף.
אחרי שיוצרים את הנושא, צריך להעניק הרשאה לפרסום בנושא Cloud Pub/Sub. לדוגמה, אפשר להשתמש בהרשאה
roles/pubsub.publisherכדי לפרסם בנושאים. מידע נוסף על תפקידים ב-Cloud Pub/Sub זמין במאמר בקרת גישה.משתמשים בתוכן של קובץ ה-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 שנוצר מקובץ המפתח של חשבון השירות. | ללא. | כן. |