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