আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
সংস্করণ: ১.৫.১
গুগল ক্লাউড পাব/সাব পরিষেবার কোনো টপিকে বার্তা প্রকাশ করুন।
এই বিষয়বস্তুতে এই এক্সটেনশনটি কনফিগার ও ব্যবহার করার জন্য নির্দেশিকা দেওয়া হয়েছে।
পূর্বশর্ত
ExtensionCallout পলিসি ব্যবহার করে এপিআই প্রক্সি থেকে এক্সটেনশনটি ব্যবহার করার আগে, আপনাকে অবশ্যই:
কুইকস্টার্ট: কনসোল ব্যবহার- এ বর্ণিত পদ্ধতি অনুসরণ করে একটি ক্লাউড পাব/সাব টপিক তৈরি করুন।
একবার আপনার টপিকটি তৈরি হয়ে গেলে, আপনার ক্লাউড পাব/সাব টপিকে প্রকাশ করার অনুমতি দিন । উদাহরণস্বরূপ, আপনি টপিকে প্রকাশ করার জন্য
roles/pubsub.publisherরোলটি ব্যবহার করতে পারেন। ক্লাউড পাব/সাব রোল সম্পর্কে আরও জানতে, অ্যাক্সেস কন্ট্রোল দেখুন।সার্ভিস অ্যাকাউন্টের জন্য একটি কী তৈরি করতে GCP কনসোল ব্যবহার করুন ।
কনফিগারেশন রেফারেন্স ব্যবহার করে এক্সটেনশনটি যোগ ও কনফিগার করার সময়, প্রাপ্ত কী JSON ফাইলের বিষয়বস্তু ব্যবহার করুন।
ক্লাউড পাব/সাব সম্পর্কে
ক্লাউড পাব/সাব বহু-থেকে-বহু, অ্যাসিঙ্ক্রোনাস মেসেজিং প্রদান করে যা প্রেরক এবং প্রাপককে বিচ্ছিন্ন রাখে। ক্লাউড পাব/সাব স্বল্প-বিলম্বের, টেকসই মেসেজিং সরবরাহ করে যা ডেভেলপারদের গুগল ক্লাউড প্ল্যাটফর্মে এবং বাহ্যিকভাবে হোস্ট করা সিস্টেমগুলিকে দ্রুত একীভূত করতে সহায়তা করে।
আপনি যদি 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": {"attr1": "foo", "attr2": "bar"} . | JSON অ্যারে | কোনোটিই না | না |
প্রতিক্রিয়া
টপিকে প্রকাশিত মেসেজের আইডি সম্বলিত JSON। উদাহরণস্বরূপ:
{"messageId":"165918654986954"}
কনফিগারেশন রেফারেন্স
এপিআই প্রক্সিতে ব্যবহারের জন্য এই এক্সটেনশনটি কনফিগার ও ডেপ্লয় করার সময় নিম্নলিখিত বিষয়গুলো ব্যবহার করুন।
সাধারণ সম্প্রসারণ বৈশিষ্ট্য
নিম্নলিখিত বৈশিষ্ট্যগুলি প্রতিটি এক্সটেনশনের জন্য উপস্থিত রয়েছে।
| সম্পত্তি | বর্ণনা | ডিফল্ট | প্রয়োজন |
|---|---|---|---|
name | আপনি এক্সটেনশনের এই কনফিগারেশনের নাম দিন। | কোনোটিই নয় | হ্যাঁ |
packageName | Apigee Edge দ্বারা প্রদত্ত এক্সটেনশন প্যাকেজের নাম। | কোনোটিই নয় | হ্যাঁ |
version | যে এক্সটেনশন প্যাকেজ থেকে আপনি একটি এক্সটেনশন কনফিগার করছেন তার সংস্করণ নম্বর। | কোনোটিই নয় | হ্যাঁ |
configuration | আপনি যে এক্সটেনশনটি যোগ করছেন তার জন্য নির্দিষ্ট কনফিগারেশন মান। এই এক্সটেনশন প্যাকেজের বৈশিষ্ট্য দেখুন | কোনোটিই নয় | হ্যাঁ |
এই এক্সটেনশন প্যাকেজের জন্য বৈশিষ্ট্যসমূহ
| সম্পত্তি | বর্ণনা | ডিফল্ট | প্রয়োজনীয় |
|---|---|---|---|
topic | যে টপিকে পাবলিশ করতে হবে। এই ভ্যালুটি পাব/সাব সার্ভিস থেকে নিন, যেমন সার্ভিসটির জন্য জিসিপি কনসোল থেকে। উদাহরণস্বরূপ, টপিকের নামটি projects/GCP-PROJECT-ID/topics/TOPIC-NAME এই ফর্ম্যাটে হতে পারে। | কিছুই না। | হ্যাঁ। |
credentials | Apigee Edge কনসোলে প্রবেশ করানো হলে, এটি আপনার সার্ভিস অ্যাকাউন্ট কী ফাইলের বিষয়বস্তু। ম্যানেজমেন্ট API-এর মাধ্যমে পাঠানো হলে, এটি সার্ভিস অ্যাকাউন্ট কী ফাইল থেকে তৈরি একটি base64-এনকোডেড মান। | কিছুই না। | হ্যাঁ। |