إضافة Google Cloud Pub/Sub

أنت تعرض مستندات Apigee Edge.
انتقل إلى مستندات Apigee X.
معلومات

الإصدار: 1.5.1

يمكنك نشر رسائل حول موضوع في خدمة Google Cloud Pub/Sub.

يوفّر هذا المحتوى مرجعًا لإعداد هذه الإضافة واستخدامها.

المتطلبات الأساسية

قبل استخدام الإضافة من خادم وكيل لواجهة برمجة التطبيقات باستخدام سياسة ExtensionCallout، عليك إجراء ما يلي:

  1. أنشِئ موضوع Cloud Pub/Sub، كما هو موضَّح في مقالة Quickstart: استخدام وحدة التحكّم.

  2. بعد حصولك على الموضوع، امنح الإذن للنشر في موضوع Cloud Pub/Sub. على سبيل المثال، يمكنك استخدام الدور "roles/pubsub.publisher" للنشر في المواضيع. لمزيد من المعلومات حول أدوار Cloud Pub/Sub، يُرجى الاطّلاع على قسم التحكُّم في الوصول.

  3. استخدِم "وحدة تحكُّم Google Cloud Platform" لإنشاء مفتاح لحساب الخدمة.

  4. استخدِم محتوى ملف 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 يتم إنشاؤها من ملف مفتاح حساب الخدمة. بلا عُري نعم.