أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلىمستندات Apigee X. info
الإصدار: 1.2.1
يمكنك نشر الرسائل في موضوع في خدمة Google Cloud Pub/Sub.
يوفّر هذا المحتوى مرجعًا لإعداد هذه الإضافة واستخدامها.
المتطلبات الأساسية
قبل استخدام الإضافة من خادم وكيل لواجهة برمجة التطبيقات باستخدام سياسة ExtensionCallout، يجب تنفيذ ما يلي:
إنشاء موضوع في Cloud Pub/Sub، كما هو موضّح في دليل البدء السريع: استخدام وحدة التحكّم.
بعد الحصول على الموضوع، عليك منح الإذن بالنشر في موضوع Cloud Pub/Sub. على سبيل المثال، يمكنك استخدام دور
roles/pubsub.publisherللنشر في المواضيع. لمزيد من المعلومات عن أدوار Cloud Pub/Sub، يُرجى الاطّلاع على مقالة التحكّم في الوصول.استخدِم وحدة تحكّم Google Cloud Platform لإنشاء مفتاح لحساب الخدمة.
استخدِم محتويات ملف مفتاح JSON الناتج عند إضافة الإضافة وإعدادها باستخدام مرجع الإعدادات.
لمحة عن Cloud Pub/Sub
توفّر خدمة Cloud Pub/Sub ميزة المراسلة غير المتزامنة من جهات متعددة إلى جهات متعددة، ما يؤدي إلى فصل المرسلين عن المستلِمين. توفّر خدمة Cloud Pub/Sub مراسلة منخفضة وقت الاستجابة ومستمرة تساعد المطوّرين في دمج الأنظمة المستضافة على Google Cloud Platform وخارجها بسرعة.
إذا كنت بصدد بدء استخدام Cloud Pub/Sub، يُرجى الاطّلاع على أدلة البدء السريع في مستندات Cloud Pub/Sub.
نماذج
توضّح الأمثلة التالية كيفية إعداد الدعم لإجراءات إضافة Cloud Pub/Sub باستخدام سياسة ExtensionCallout.
رسالة نصيّة
في هذا المثال، ينشر الإجراء publish رسالة كسلسلة بسيطة في موضوع محدّد في إعدادات الإضافة configuration. يعرض الإجراء 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 في موضوع محدّد في إعدادات الإضافة configuration. يعرض الإجراء 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
}]]></Input>
مثال على سلسلة
<Action>publish</Action>
<Input><![CDATA[
{
"message" : "My test message."
}
]]></Input>
مثال على JSON
<Action>publish</Action>
<Input><![CDATA[
{
"message" : { "info" : "My test message" }
}
]]></Input>
مَعلمات الطلب
| المَعلمة | الوصف | النوع | تلقائي | مطلوب |
|---|---|---|---|---|
| رسالة | الرسالة التي سيتم نشرها يمكنك استخدام سلسلة بسيطة أو تنظيم رسالتك باستخدام JSON من تصميمك. | سلسلة أو JSON | بلا عُري | نعم. |
الردّ
JSON يحتوي على رقم تعريف الرسالة كما تم نشرها في الموضوع على سبيل المثال:
{"messageId":"165918654986954"}
مرجع الإعدادات
استخدِم ما يلي عند إعداد هذه الإضافة ونشرها لاستخدامها في خوادم وكيل لواجهة برمجة التطبيقات.
خصائص الإضافة الشائعة
السمات التالية متاحة لكل إضافة.
| الموقع | الوصف | تلقائي | عنصر مطلوب |
|---|---|---|---|
name |
الاسم الذي تُعطِه هذه الإضافة من الإضافات. | لا ينطبق | متوافق |
packageName |
اسم حزمة الإضافة كما هو مُوضَّح من Apigee Edge. | لا ينطبق | متوافق |
version |
رقم إصدار حزمة الإضافة التي تجري عملية إعداد الإضافة منها. | لا ينطبق | متوافق |
configuration |
قيمة الإعداد المتعلقة بالإضافة التي تدرجها الاطّلاع على خصائص حزمة الإضافات هذه | لا ينطبق | متوافق |
خصائص حزمة الإضافة هذه
| الموقع | الوصف | تلقائي | مطلوب |
|---|---|---|---|
topic |
الموضوع الذي سيتم النشر فيه يمكنك الحصول على هذه القيمة من خدمة Pub/Sub، مثلاً من وحدة تحكّم Google Cloud Platform للخدمة. على سبيل المثال، قد يتخذ اسم الموضوع الشكل projects/GCP-PROJECT-ID/topics/TOPIC-NAME |
بلا عُري | نعم. |
credentials |
عند إدخال هذا المحتوى في وحدة تحكّم Apigee Edge، يكون هذا المحتوى هو محتوى ملف مفتاح حساب الخدمة. عند إرسال هذا المحتوى من خلال Management API، يكون قيمة بترميز base64 تم إنشاؤها من ملف مفتاح حساب الخدمة. | بلا عُري | نعم. |