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

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

সংস্করণ 2.0.2

আপনার গুগল ক্লাউড প্রকল্পের মাধ্যমে স্থাপন করা ক্লাউড ফাংশনগুলি ব্যবহার করুন।

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

পূর্বশর্ত

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

  1. ক্লাউড ফাংশন API সক্ষম করুন।

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

  3. ফাংশনটির জন্য আপনার পছন্দের স্তরের অ্যাক্সেস IAM এর মাধ্যমে ব্যবহারকারীকে মঞ্জুর করুন । উদাহরণস্বরূপ, আপনি এক্সটেনশনটি কনফিগার করার জন্য যে পরিষেবা অ্যাকাউন্টটি ব্যবহার করেন তার মধ্যে ফাংশনের অ্যাক্সেস সীমাবদ্ধ করতে পারেন।

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

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

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

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

নমুনা

নিম্নলিখিত উদাহরণটি ExtensionCallout নীতি ব্যবহার করে ক্লাউড ফাংশনে ফাংশনগুলি কীভাবে আহ্বান করতে হয় তা ব্যাখ্যা করে।

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

নিম্নলিখিত উদাহরণে একটি এক্সটেনশনকলআউট নীতি রয়েছে যা একটি গুগল ক্লাউড ফাংশন এক্সটেনশনকে কল করে। এক্সটেনশনটি ক্লাউড ফাংশন API সক্ষম করার সময় অন্তর্ভুক্ত ডিফল্ট "হ্যালো ওয়ার্ল্ড" ফাংশনটিকে কল করে।

নিম্নলিখিত Node.js জাভাস্ক্রিপ্টটি একটি GCP অ্যাকাউন্টের জন্য ক্লাউড ফাংশনে স্থাপন করা হয়েছে । যদি অনুরোধে একটি বার্তা বৈশিষ্ট্য থাকে, তাহলে কোডটি সেটি ফেরত পাঠাবে। অন্যথায়, এটি তার প্রতিক্রিয়া হিসাবে "হ্যালো ওয়ার্ল্ড!" ফেরত পাঠাবে।

/**
 * 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);
};

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

পূর্ববর্তী ফাংশন কোডটি ক্লাউড ফাংশনে কেবল 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. কোনোটিই নয়। না।

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

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

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

কোনোটিই নয়।

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

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

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

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

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

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

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

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