افزونه Google Cloud Pub/Sub

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

نسخه: 2.0.1

پیام‌ها را در موضوعی در سرویس Google Cloud Pub/Sub منتشر کنید.

این محتوا مرجعی برای پیکربندی و استفاده از این افزونه ارائه می‌دهد.

پیش‌نیازها

قبل‌از استفاده از افزونه از یک پراکسی API بااستفاده از خط‌مشی ExtensionCallout، باید:

  1. موضوع Cloud Pub/Sub را همان‌طور که در شروع سریع: استفاده از کنسول توضیح داده شده است ایجاد کنید.

  2. پس‌از اینکه موضوع را دریافت کردید، مجوز انتشار در موضوع Cloud Pub/Sub خود را اعطا کنید. برای مثال، می‌توانید از نقش roles/pubsub.publisher برای انتشار در موضوعات استفاده کنید. برای اطلاعات بیشتر درباره نقش‌های Cloud Pub/Sub، به کنترل دسترسی مراجعه کنید.

  3. از «کنسول Google Cloud» برای تولید کلید حساب سرویس استفاده کنید.

  4. از محتوای فایل 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 است که از فایل کلید حساب سرویس تولید می‌شود. هیچ‌کدام. بله.