গুগল ক্লাউড ফাংশন এক্সটেনশন

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

সংস্করণ ১.০.৫

আপনার গুগল ক্লাউড প্রজেক্টের মাধ্যমে ডেপ্লয় করা ক্লাউড ফাংশনগুলো চালু করুন।

বর্তমানে, এই এক্সটেনশনটি HTTP ট্রিগার ফাংশন আহ্বান করা সমর্থন করে।

পূর্বশর্ত

এই বিষয়বস্তুটি এই এক্সটেনশনটি কনফিগার এবং ব্যবহার করার জন্য নির্দেশিকা প্রদান করে। ExtensionCallout পলিসি ব্যবহার করে একটি এপিআই প্রক্সি থেকে এক্সটেনশনটি ব্যবহার করার আগে, আপনাকে অবশ্যই:

  1. ক্লাউড ফাংশনস এপিআই সক্রিয় করুন।

  2. আপনার গুগল ক্লাউড প্রোজেক্টের জন্য ক্লাউড ফাংশনসে ফাংশনগুলো সংজ্ঞায়িতস্থাপন করুন

  3. ফাংশনটির জন্য আপনি যে স্তরের অ্যাক্সেস চান , সেই অনুযায়ী IAM-এর মাধ্যমে ব্যবহারকারীকে অ্যাক্সেস দিন । উদাহরণস্বরূপ, আপনি এক্সটেনশনটি কনফিগার করতে ব্যবহৃত সার্ভিস অ্যাকাউন্টের মধ্যেই ফাংশনটির অ্যাক্সেস সীমাবদ্ধ রাখতে পারেন।

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

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

ক্লাউড ফাংশন সম্পর্কে

গুগল ক্লাউড ফাংশন ব্যবহার করে, আপনি গুগল ক্লাউডে ফাংশন তৈরি ও স্থাপন করতে পারেন এবং তারপর অন্য কোড থেকে সেই ফাংশনগুলো ব্যবহার করতে পারেন। ক্লাউড ফাংশন সম্পর্কে প্রাথমিক ধারণা পেতে, কুইকস্টার্টগুলোর মধ্যে একটি চেষ্টা করে দেখুন।

নমুনা

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে ExtensionCallout পলিসি ব্যবহার করে ক্লাউড ফাংশন-এ ফাংশন কল করতে হয়।

Node.js ফাংশন চালু করুন

নিম্নলিখিত উদাহরণটিতে একটি ExtensionCallout পলিসি দেখানো হয়েছে যা একটি Google Cloud Functions এক্সটেনশনকে কল করছে। এই এক্সটেনশনটি ডিফল্ট "hello world" ফাংশনটিকে কল করে, যা Cloud Functions API সক্রিয় করার সময় অন্তর্ভুক্ত থাকে।

নিম্নলিখিত Node.js জাভাস্ক্রিপ্ট কোডটি একটি GCP অ্যাকাউন্টের জন্য ক্লাউড ফাংশনসে ডেপ্লয় করা হয়েছে। যদি রিকোয়েস্টে একটি 'message' প্রপার্টি থাকে, তাহলে কোডটি সেটিই রিটার্ন করে। অন্যথায়, এটি রেসপন্স হিসেবে "Hello World!" রিটার্ন করে।

/**
 * Responds to any HTTP request.
 *
 * @param {!express:Request} req HTTP request context.
 * @param {!express:Response} res HTTP response context.
 */
exports.helloWorld = (req, res) => {
  let message = req.query.message || req.body.message || 'Hello World!';
  res.status(200).send(message);
};

এই উদাহরণটিতে একটি গুগল ক্লাউড ফাংশনস এক্সটেনশন অন্তর্ভুক্ত রয়েছে, যা ক্লাউড ফাংশনসে কোড কল করার জন্য প্রমাণীকরণ ও অনুমোদন পেতে প্রয়োজনীয় ক্রেডেনশিয়াল দিয়ে কনফিগার করা হয়েছে

পূর্ববর্তী ফাংশন কোডটি ক্লাউড ফাংশনসে কেবল helloWorld নামে সংরক্ষিত আছে। নিম্নলিখিত এক্সটেনশনকলআউট (ExtensionCallout) পলিসি কনফিগারেশন কোডটি এই নামটি ব্যবহার করে, এবং এর সাথে সেই ক্লাউড ফাংশনস এনভায়রনমেন্টের বিবরণের সাথে মেলে এমন অঞ্চল ও প্রজেক্ট আইডি ভ্যালু ব্যবহার করে যেখানে ফাংশনটি ডেপ্লয় করা হয়েছে।

<Action>invoke</Action>
<Input><![CDATA[
  {
    "region" : "us-central1",
    "projectId" : "my-project",
    "functionName" : "hello-world",
    "method" : "POST",
    "payload" : { "message" : "Hello yourself!" }
  }
]]></Input>
<Output parsed="false">function.response</Output>

নিম্নলিখিত AssignMessage পলিসিটি ডিবাগিংয়ের উদ্দেশ্যে রেসপন্স ভ্যালুটি ধারণ করে।

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Function-Response">
    <DisplayName>Get Function Response</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{function.response}</Payload>
    </Set>
</AssignMessage>

উপরোক্ত অনুরোধের প্রতিক্রিয়াটি নিম্নরূপ হবে:

Hello yourself!

parsed এর ডিফল্ট মান হলো true । এই উদাহরণে পলিসির <Output> ট্যাগে parsed="false" সেট করা হয়েছে, যা পলিসিটিকে JSON রেসপন্স পার্স করা থেকে বিরত রাখে। ক্লাউড ফাংশনস এক্সটেনশন ব্যবহার করার বেশিরভাগ ক্ষেত্রেই আপনাকে parsed="false" সেট করতে হবে। আরও তথ্যের জন্য `<Output>` এলিমেন্টটি দেখুন।

যদি ক্লাউড ফাংশনটি একটি JSON রেসপন্স ফেরত দেয় এবং আপনি parsed="true" সেট করেন, তাহলে এক্সটেনশন থেকে প্রাপ্ত রেসপন্সটি একটি অবজেক্ট রেফারেন্স হবে। রেফারেন্স থেকে রেসপন্সটি বের করার জন্য, নিম্নলিখিত সিনট্যাক্সটি ব্যবহার করুন: { objectName }.{ jsonKey } । উদাহরণস্বরূপ:

function.response.message

কর্ম

আহ্বান করুন

একটি ক্লাউড ফাংশন চালু করে।

বর্তমানে, এই এক্সটেনশনটি HTTP ট্রিগার ফাংশন আহ্বান করা সমর্থন করে।

সিনট্যাক্স

<Action>invoke</Action>
<Input><![CDATA[
  {
    "region" : "deployment-region",
    "projectId" : "project-id",
    "functionName" : "function-name",
    "method" : "http-method",
    "payload" : { json-payload }
  }
]]></Input>
<Output>function.response</Output>

উদাহরণ

<Action>invoke</Action>
<Input><![CDATA[
  {
    "region" : "us-central1",
    "projectId" : "my-project",
    "functionName" : "hello-world",
    "method" : "POST",
    "payload" : { "message" : "Hello yourself!" }
  }
]]></Input>
<Output>function.response</Output>

অনুরোধের পরামিতি

প্যারামিটার বর্ণনা প্রকার ডিফল্ট প্রয়োজনীয়
অঞ্চল গুগল ক্লাউড অঞ্চল যেখানে ফাংশনটি স্থাপন করা হয়েছে। দড়ি। কিছুই না। হ্যাঁ।
প্রজেক্ট আইডি জিসিপি প্রজেক্ট আইডি। দড়ি। কিছুই না। হ্যাঁ।
ফাংশনের নাম যে HTTP ফাংশনটি কল করতে হবে তার নাম। ফাংশনটি তৈরি করার সময় আপনি এই নামটিই ব্যবহার করেছিলেন (এটি ফাংশনের কোড থেকে নেওয়া কোনো নাম হতে হবে এমন কোনো বাধ্যবাধকতা নেই)। দড়ি। কিছুই না। হ্যাঁ।
পদ্ধতি ফাংশনটি কল করার সময় যে HTTP মেথডটি ব্যবহার করতে হবে। দড়ি। GET না।
পেলোড ফাংশন আহ্বানের সাথে প্রেরণ করার জন্য পেলোড। JSON. কিছুই না। না।

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

নির্দিষ্ট ফাংশনের প্রতিক্রিয়া মান, যদি থাকে।

প্রতিক্রিয়া বৈশিষ্ট্য

কিছুই না।

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

এপিআই প্রক্সিতে ব্যবহারের জন্য এই এক্সটেনশনটি কনফিগার এবং ডেপ্লয় করার সময় নিম্নলিখিত বিষয়গুলো ব্যবহার করুন। Apigee কনসোল ব্যবহার করে একটি এক্সটেনশন কনফিগার করার ধাপগুলোর জন্য, “একটি এক্সটেনশন যোগ করা এবং কনফিগার করা” দেখুন।

সাধারণ সম্প্রসারণ বৈশিষ্ট্য

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

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

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

এই এক্সটেনশনের জন্য নির্দিষ্ট নিম্নলিখিত কনফিগারেশন প্রোপার্টিগুলোর মান উল্লেখ করুন।

সম্পত্তি বর্ণনা ডিফল্ট প্রয়োজনীয়
পরিচয়পত্র Apigee Edge কনসোলে প্রবেশ করানো হলে, এটি আপনার সার্ভিস অ্যাকাউন্ট কী ফাইলের বিষয়বস্তু। ম্যানেজমেন্ট API-এর মাধ্যমে পাঠানো হলে, এটি সার্ভিস অ্যাকাউন্ট কী ফাইল থেকে তৈরি একটি base64-এনকোডেড মান। কিছুই না। হ্যাঁ।