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