Google Cloud Pub/Sub এক্সটেনশন

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

ভার্সন: 2.0.1

Google Cloud Pub/Sub পরিষেবার কোনও বিষয়ে মেসেজ প্রকাশ করা।

এই এক্সটেনশন কনফিগার ও ব্যবহার করার জন্য এই কন্টেন্ট রেফারেন্স প্রদান করে।

পূর্বশর্ত

ExtensionCallout নীতি ব্যবহার করে API প্রক্সি থেকে এক্সটেনশন ব্যবহার করার আগে, আপনাকে অবশ্যই:

  1. দ্রুত শুরু করা: কনসোল ব্যবহার করা নিবন্ধে যেভাবে বর্ণনা করা হয়েছে সেইভাবে Cloud Pub/Sub টপিক তৈরি করুন।

  2. টপিক পেয়ে গেলে, আপনার Cloud Pub/Sub টপিকে প্রকাশ করার জন্য অনুমতি দিন। যেমন, আপনি কোনও বিষয়ে প্রকাশ করার জন্য roles/pubsub.publisher ভূমিকা ব্যবহার করতে পারেন। Cloud Pub/Sub-এর ভূমিকা সম্পর্কে আরও জানতে, অ্যাক্সেস কন্ট্রোল দেখুন।

  3. পরিষেবা অ্যাকাউন্টের জন্য কী তৈরি করতে Google Cloud Console ব্যবহার করুন।

  4. কনফিগারেশন রেফারেন্স ব্যবহার করে এক্সটেনশন যোগ ও কনফিগার করার সময়, ফলাফল হিসেবে প্রাপ্ত কী JSON ফাইলের কন্টেন্ট ব্যবহার করুন।

Cloud Pub/Sub সম্পর্কে

Cloud Pub/Sub হল একটি অ্যাসিঙ্ক্রোনাস মেসেজিং পরিষেবা যা একাধিক প্রেরক ও প্রাপককে একে অপরের থেকে আলাদা করে। Cloud Pub/Sub কম লেটেন্সি সহ টেকসই মেসেজিং প্রদান করে যা ডেভেলপারদের Google Cloud ও এক্সটার্নাল হোস্টেড সিস্টেম দ্রুত ইন্টিগ্রেট করতে সাহায্য করে।

আপনি Cloud Pub/Sub-এর সাথে সবেমাত্র শুরু করে থাকলে, Cloud Pub/Sub ডকুমেন্টেশনে কুইকস্টার্ট দেখুন।

নমুনা

ExtensionCallout নীতি ব্যবহার করে Cloud Pub/Sub এক্সটেনশন অ্যাকশনের জন্য সহায়তা কীভাবে কনফিগার করতে হয় তা নিম্নলিখিত উদাহরণ থেকে বোঝা যায়।

টেক্সট মেসেজ

এই উদাহরণে, 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-এর ভ্যালু হল ১৬৫৯১৮৬৫৪৯৮৬৯৫৪।

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-এর ভ্যালু হল ১৬৫৯১৮৬৫৪৯৮৬৯৫৪।

ক্রিয়াসমূহ

প্রকাশ করুন

এই এক্সটেনশনের কনফিগারেশনে উল্লেখ করা টপিকে মেসেজ প্রকাশ করে।

সিন্ট্যাক্স

<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 যে বিষয়ে প্রকাশ করতে হবে। পরিষেবার জন্য Google Cloud Console-এর মতো Pub/Sub পরিষেবা থেকে এই ভ্যালু পান। যেমন, বিষয়ের নাম এই ফর্ম নিতে পারে projects/GCP-PROJECT-ID/topics/TOPIC-NAME কোনওটিই নয়। হ্যাঁ।
credentials Apigee Edge কনসোলে এটি প্রবেশ করানো হলে, এটি আপনার পরিষেবা অ্যাকাউন্ট কী ফাইলের কন্টেন্ট। ম্যানেজমেন্ট API ব্যবহার করে পাঠানো হলে, এটি হল পরিষেবা অ্যাকাউন্ট কী ফাইল থেকে তৈরি করা একটি base64-এনকোড করা ভ্যালু। কোনওটিই নয়। হ্যাঁ।