Google Cloud Pub/Sub Extension

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

نسخه: 1.3.0

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

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

پیش نیازها

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

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

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

  3. از کنسول GCP برای ایجاد یک کلید برای حساب سرویس استفاده کنید .

  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>

خط مشی 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 به موضوعی که در پیکربندی برنامه افزودنی مشخص شده است منتشر می‌کند. اقدام 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,
  "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": {"attr1": "foo", "attr2": "bar"} .
آرایه JSON هیچ کدام خیر

پاسخ

JSON حاوی شناسه پیام منتشر شده در موضوع. به عنوان مثال:

{"messageId":"165918654986954"}

مرجع پیکربندی

هنگام پیکربندی و استقرار این افزونه برای استفاده در پراکسی های API از موارد زیر استفاده کنید.

ویژگی های رایج پسوند

ویژگی های زیر برای هر افزونه وجود دارد.

ویژگی شرح پیش فرض ضروری
name نامی که به این پیکربندی افزونه می‌دهید. هیچ یک آره
packageName نام بسته افزودنی همانطور که توسط Apigee Edge داده شده است. هیچ یک آره
version شماره نسخه بسته برنامه افزودنی که از آن یک برنامه افزودنی را پیکربندی می کنید. هیچ یک آره
configuration مقدار پیکربندی مخصوص افزونه ای که اضافه می کنید. به ویژگی های این بسته برنامه افزودنی مراجعه کنید هیچ یک آره

ویژگی های این بسته افزونه

اموال توضیحات پیش فرض مورد نیاز
topic موضوعی که باید در آن منتشر شود. این مقدار را از سرویس Pub/Sub دریافت کنید، مانند کنسول GCP برای این سرویس. برای مثال، نام موضوع ممکن است به شکل projects/GCP-PROJECT-ID/topics/TOPIC-NAME باشد. هیچ کدام. بله.
credentials وقتی در کنسول Apigee Edge وارد می‌شوید، این محتوای فایل کلید حساب سرویس شما است. هنگامی که از طریق API مدیریت ارسال می شود، یک مقدار کدگذاری شده با base64 است که از فایل کلید حساب سرویس تولید می شود. هیچ کدام. بله.