Google ক্লাউড পাব/সাব এক্সটেনশন

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

সংস্করণ: 1.3.0

Google ক্লাউড পাব/সাব পরিষেবাতে একটি বিষয়ে বার্তা প্রকাশ করুন।

এই বিষয়বস্তু কনফিগার এবং এই এক্সটেনশন ব্যবহার করার জন্য রেফারেন্স প্রদান করে.

পূর্বশর্ত

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

  1. একটি ক্লাউড পাব/সাব বিষয় তৈরি করুন, যেমন Quickstart-এ বর্ণিত: কনসোল ব্যবহার করে

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

  3. পরিষেবা অ্যাকাউন্টের জন্য একটি কী তৈরি করতে GCP কনসোল ব্যবহার করুন

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

ক্লাউড পাব/সাব সম্পর্কে

ক্লাউড পাব/সাব অনেক-থেকে-অনেক, অ্যাসিঙ্ক্রোনাস মেসেজিং প্রদান করে যা প্রেরক এবং রিসিভারকে ডিকপল করে। ক্লাউড পাব/সাব কম লেটেন্সি, টেকসই মেসেজিং সরবরাহ করে যা ডেভেলপারদের দ্রুত Google ক্লাউড প্ল্যাটফর্মে এবং বাহ্যিকভাবে হোস্ট করা সিস্টেমগুলিকে সংহত করতে সাহায্য করে।

আপনি যদি সবেমাত্র ক্লাউড পাব/সাব দিয়ে শুরু করছেন, তাহলে ক্লাউড পাব/সাব ডকুমেন্টেশনে দ্রুত শুরুর দিকে নজর দিন।

নমুনা

নিম্নলিখিত উদাহরণগুলি ব্যাখ্যা করে কিভাবে ক্লাউড পাব/সাব এক্সটেনশন অ্যাকশনের জন্য এক্সটেনশনকলআউট নীতি ব্যবহার করে সমর্থন কনফিগার করতে হয়।

পাঠ্য বার্তা

এই উদাহরণে, publish ক্রিয়াটি এক্সটেনশনের কনফিগারেশনে নির্দিষ্ট করা একটি বিষয়ের একটি সাধারণ স্ট্রিং হিসাবে একটি বার্তা প্রকাশ করে। publish ক্রিয়াটি প্রকাশিত বার্তাটির ID প্রদান করে যে বিষয়টিতে এটি প্রকাশিত হয়েছিল এবং এটি <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 ক্রিয়াটি প্রকাশিত বার্তাটির ID প্রদান করে যে বিষয়টিতে এটি প্রকাশিত হয়েছিল এবং এটি <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": {"attr1": "foo", "attr2": "bar"}
JSON অ্যারে কোনোটিই নয় না

প্রতিক্রিয়া

JSON যে বিষয়ে প্রকাশিত বার্তাটির আইডি রয়েছে। যেমন:

{"messageId":"165918654986954"}

কনফিগারেশন রেফারেন্স

আপনি API প্রক্সিগুলিতে ব্যবহারের জন্য এই এক্সটেনশনটি কনফিগার এবং স্থাপন করার সময় নিম্নলিখিতগুলি ব্যবহার করুন৷

সাধারণ এক্সটেনশন বৈশিষ্ট্য

নিম্নলিখিত বৈশিষ্ট্যগুলি প্রতিটি এক্সটেনশনের জন্য উপস্থিত রয়েছে।

সম্পত্তি বর্ণনা ডিফল্ট প্রয়োজন
name আপনি এক্সটেনশনের এই কনফিগারেশনের নাম দিন। কোনোটিই নয় হ্যাঁ
packageName Apigee Edge দ্বারা প্রদত্ত এক্সটেনশন প্যাকেজের নাম। কোনোটিই নয় হ্যাঁ
version যে এক্সটেনশন প্যাকেজ থেকে আপনি একটি এক্সটেনশন কনফিগার করছেন তার সংস্করণ নম্বর। কোনোটিই নয় হ্যাঁ
configuration আপনি যে এক্সটেনশনটি যোগ করছেন তার জন্য নির্দিষ্ট কনফিগারেশন মান। এই এক্সটেনশন প্যাকেজের বৈশিষ্ট্য দেখুন কোনোটিই নয় হ্যাঁ

এই এক্সটেনশন প্যাকেজ জন্য বৈশিষ্ট্য

সম্পত্তি বর্ণনা ডিফল্ট প্রয়োজন
topic প্রকাশ করার বিষয়। এই মানটি পাব/সাব পরিষেবা থেকে পান, যেমন পরিষেবার জন্য GCP কনসোল থেকে৷ উদাহরণ স্বরূপ, বিষয়ের নাম projects/GCP-PROJECT-ID/topics/TOPIC-NAME ফর্ম নিতে পারে কোনোটিই নয়। হ্যাঁ।
credentials Apigee Edge কনসোলে প্রবেশ করা হলে, এটি আপনার পরিষেবা অ্যাকাউন্ট কী ফাইলের বিষয়বস্তু। ম্যানেজমেন্ট এপিআই এর মাধ্যমে পাঠানো হলে, এটি একটি বেস64-এনকোডেড মান যা সার্ভিস অ্যাকাউন্ট কী ফাইল থেকে তৈরি হয়। কোনোটিই নয়। হ্যাঁ।