درحال مشاهده اسناد Apigee Edge هستید.
به
اسناد Apigee X بروید. اطلاعات
نسخه: 2.0.1
پیامها را در موضوعی در سرویس Google Cloud Pub/Sub منتشر کنید.
این محتوا مرجعی برای پیکربندی و استفاده از این افزونه ارائه میدهد.
پیشنیازها
قبلاز استفاده از افزونه از یک پراکسی API بااستفاده از خطمشی ExtensionCallout، باید:
موضوع Cloud Pub/Sub را همانطور که در شروع سریع: استفاده از کنسول توضیح داده شده است ایجاد کنید.
پساز اینکه موضوع را دریافت کردید، مجوز انتشار در موضوع Cloud Pub/Sub خود را اعطا کنید. برای مثال، میتوانید از نقش
roles/pubsub.publisherبرای انتشار در موضوعات استفاده کنید. برای اطلاعات بیشتر درباره نقشهای Cloud Pub/Sub، به کنترل دسترسی مراجعه کنید.از «کنسول Google Cloud» برای تولید کلید حساب سرویس استفاده کنید.
از محتوای فایل 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>
خطمشی تخصیص پیام زیر از مقدار متغیر ذخیرهکننده پاسخ افزونه برای تخصیص بار پاسخ استفاده میکند. شناسه پیام در دارایی 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"}
مرجع پیکربندی
هنگام پیکربندی و استقرار این افزونه برای استفاده در پراکسیهای API، از موارد زیر استفاده کنید.
داراییهای افزونه مشترک
ویژگی های زیر برای هر افزونه وجود دارد.
| ویژگی | شرح | پیش فرض | ضروری |
|---|---|---|---|
name | نامی که به این پیکربندی افزونه میدهید. | هیچ یک | آره |
packageName | نام بسته افزودنی همانطور که توسط Apigee Edge داده شده است. | هیچ یک | آره |
version | شماره نسخه بسته برنامه افزودنی که از آن یک برنامه افزودنی را پیکربندی می کنید. | هیچ یک | آره |
configuration | مقدار پیکربندی مخصوص افزونه ای که اضافه می کنید. به ویژگی های این بسته برنامه افزودنی مراجعه کنید | هیچ یک | آره |
داراییهای این بسته افزونه
| دارایی | شرح | پیشفرض | الزامی |
|---|---|---|---|
topic |
موضوعی که باید در آن منتشر شود. این مقدار را از سرویس Pub/Sub، مثلاً از کنسول Google Cloud برای سرویس، دریافت کنید. برای مثال، نام موضوع ممکن است بهصورت projects/GCP-PROJECT-ID/topics/TOPIC-NAME باشد |
هیچکدام. | بله. |
credentials |
وقتی در کنسول Apigee Edge وارد میشود، این محتوای فایل کلید حساب خدمات شما است. وقتی بااستفاده از «میانای برنامهسازی کاربردی مدیریت» ارسال میشود، مقدار رمزگذاریشده با base64 است که از فایل کلید حساب سرویس تولید میشود. | هیچکدام. | بله. |