אתם קוראים את מאמרי העזרה של Apigee Edge.
אפשר לעבור אל מסמכי התיעוד של Apigee X. מידע
גרסה: 1.5.1
פרסום הודעות בנושא בשירות 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 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, זה התוכן של קובץ המפתח של חשבון השירות. כששולחים את הערך הזה דרך Management API, הוא מקודד ב-Base64 ונוצר מקובץ המפתח של חשבון השירות. | ללא. | כן. |