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

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

সংস্করণ 1.3.1

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

বর্তমানে, এই এক্সটেনশনটি HTTP ট্রিগার ফাংশনগুলিকে সমর্থন করে৷

পূর্বশর্ত

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

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

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

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

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

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

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

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

নমুনা

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

Node.js ফাংশন আহ্বান করুন

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

নিম্নলিখিত Node.js JavaScript একটি 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 ক্লাউড ফাংশন এক্সটেনশন অন্তর্ভুক্ত রয়েছে যা প্রমাণীকরণের জন্য প্রয়োজনীয় শংসাপত্রগুলির সাথে কনফিগার করা হয়েছে এবং ক্লাউড ফাংশনে কোড আহ্বান করার জন্য অনুমোদিত৷

পূর্ববর্তী ফাংশন কোডটি ক্লাউড ফাংশনে কেবল 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" সেট করেন। আরো জন্য <আউটপুট> উপাদান দেখুন।

যদি ক্লাউড ফাংশন একটি 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>

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

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

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

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

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

কোনোটিই নয়।

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

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

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

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

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

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

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

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