أنت تعرض مستندات Apigee Edge.
انتقل إلى
مستندات Apigee X. معلومات
الإصدار: 1.5.1
يمكنك نشر رسائل حول موضوع في خدمة Google Cloud Pub/Sub.
يوفّر هذا المحتوى مرجعًا لإعداد هذه الإضافة واستخدامها.
المتطلبات الأساسية
قبل استخدام الإضافة من خادم وكيل لواجهة برمجة التطبيقات باستخدام سياسة ExtensionCallout، عليك إجراء ما يلي:
أنشِئ موضوع Cloud Pub/Sub، كما هو موضَّح في مقالة Quickstart: استخدام وحدة التحكّم.
بعد حصولك على الموضوع، امنح الإذن للنشر في موضوع 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
رسالة كسلسلة بسيطة إلى موضوع محدّد في ضبط الإضافة. يعرض الإجراء 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"}
مرجع الإعداد
يمكنك استخدام ما يلي عند إعداد هذه الإضافة ونشرها للاستخدام في الخوادم الوكيلة لواجهة برمجة التطبيقات.
خصائص الإضافات الشائعة
السمات التالية متاحة لكل إضافة.
الموقع | الوصف | تلقائي | عنصر مطلوب |
---|---|---|---|
name |
الاسم الذي تُعطِه هذه الإضافة من الإضافات. | لا ينطبق | متوافق |
packageName |
اسم حزمة الإضافة كما هو مُوضَّح من Apigee Edge. | لا ينطبق | متوافق |
version |
رقم إصدار حزمة الإضافة التي تجري عملية إعداد الإضافة منها. | لا ينطبق | متوافق |
configuration |
قيمة الإعداد المتعلقة بالإضافة التي تدرجها الاطّلاع على خصائص حزمة الإضافات هذه | لا ينطبق | متوافق |
خصائص حزمة الإضافات هذه
الموقع | الوصف | تلقائي | مطلوب |
---|---|---|---|
topic |
الموضوع الذي سيتم النشر إليه. يمكنك الحصول على هذه القيمة من خدمة النشر/الاشتراك، مثل وحدة تحكُّم Google Cloud Platform للخدمة. على سبيل المثال، قد يتخذ اسم الموضوع النموذج projects/GCP-PROJECT-ID/topics/TOPIC-NAME |
بلا عُري | نعم. |
credentials |
عند الإدخال في وحدة تحكُّم Apigee Edge، يكون هذا هو محتوى ملف مفتاح حساب الخدمة. وعند إرسالها عبر واجهة برمجة تطبيقات الإدارة، تكون قيمة بترميز base64 يتم إنشاؤها من ملف مفتاح حساب الخدمة. | بلا عُري | نعم. |