Google Cloud Functions एक्सटेंशन

आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

वर्शन 1.3.1

अपने Google Cloud प्रोजेक्ट के ज़रिए डिप्लॉय किए गए Cloud Functions शुरू करें.

फ़िलहाल, यह एक्सटेंशन एचटीटीपी ट्रिगर फ़ंक्शन को लागू करने की सुविधा देता है.

ज़रूरी शर्तें

इस कॉन्टेंट में, इस एक्सटेंशन को कॉन्फ़िगर करने और इसका इस्तेमाल करने के बारे में जानकारी दी गई है. एक्सटेंशन कॉलआउट की नीति की मदद से, किसी एपीआई प्रॉक्सी के एक्सटेंशन का इस्तेमाल करने से पहले, आपको ये काम करने होंगे:

  1. Cloud Functions API चालू करें.

  2. अपने Google Cloud प्रोजेक्ट के लिए, Cloud Functions में फ़ंक्शन तय करें और डिप्लॉय करें.

  3. फ़ंक्शन के लिए जिस लेवल का ऐक्सेस चाहिए उसके लिए, आईएएम के ज़रिए उपयोगकर्ता को ऐक्सेस दें. उदाहरण के लिए, फ़ंक्शन का ऐक्सेस सिर्फ़ उस सेवा खाते तक सीमित किया जा सकता है जिसका इस्तेमाल एक्सटेंशन को कॉन्फ़िगर करने के लिए किया जाता है.

  4. सेवा खाते के लिए कुंजी जनरेट करने के लिए, GCP कंसोल का इस्तेमाल करें.

  5. कॉन्फ़िगरेशन रेफ़रंस का इस्तेमाल करके, एक्सटेंशन जोड़ते और कॉन्फ़िगर करते समय, नतीजे वाली कुंजी JSON फ़ाइल के कॉन्टेंट का इस्तेमाल करें.

Cloud Functions के बारे में जानकारी

Google Cloud Functions की मदद से, Google Cloud पर फ़ंक्शन बनाए और डिप्लॉय किए जा सकते हैं. इसके बाद, दूसरे कोड से उन फ़ंक्शन को शुरू किया जा सकता है. Cloud Functions के बारे में जानने के लिए, क्विकस्टार्ट में से किसी एक को आज़माएं.

सैंपल

इस उदाहरण में, एक्सटेंशन कॉलआउट नीति का इस्तेमाल करके Cloud Functions में फ़ंक्शन शुरू करने का तरीका बताया गया है.

Node.js फ़ंक्शन शुरू करें

नीचे दिए गए उदाहरण में, एक्सटेंशन कॉलआउट नीति को Google Cloud Functions एक्सटेंशन के लिए कॉल किया गया है. एक्सटेंशन डिफ़ॉल्ट को "हैलो वर्ल्ड" को कॉल करता है Cloud Functions API चालू करते समय फ़ंक्शन शामिल किया जाता है.

नीचे दिया गया Node.js JavaScript, GCP खाते के लिए Cloud Functions में डिप्लॉय किया गया है. अगर अनुरोध में कोई मैसेज प्रॉपर्टी शामिल है, तो कोड उसे नतीजे के तौर पर दिखाता है. ऐसा न करने पर, यह "Hey 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);
};

इस उदाहरण में, Google Cloud Functions एक्सटेंशन शामिल है, जिसे Cloud Functions पर कोड शुरू करने के लिए ज़रूरी क्रेडेंशियल के साथ कॉन्फ़िगर किया गया है.

पहले के फ़ंक्शन कोड को Cloud Functions में सिर्फ़ helloWorld के तौर पर सेव किया जाता है. नीचे दिए गए एक्सटेंशन कॉलआउट नीति के कॉन्फ़िगरेशन कोड में इस नाम का इस्तेमाल किया जाता है. साथ ही, इस नाम का इस्तेमाल, Cloud Functions एनवायरमेंट की खास जानकारी से मेल खाने वाले क्षेत्र और प्रोजेक्ट आईडी की वैल्यू के साथ किया जाता है, जहां फ़ंक्शन डिप्लॉय किया गया है.

<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 के रिस्पॉन्स को पार्स करने से रोकती है. Cloud Functions एक्सटेंशन का इस्तेमाल करते समय, ज़्यादातर मामलों में आपने parsed="false" को सेट किया है. <Output> देखें एलिमेंट की संख्या की मदद से करें.

अगर Cloud Function, JSON रिस्पॉन्स देता है और आपने parsed="true" सेट किया है, तो एक्सटेंशन से मिला रिस्पॉन्स एक ऑब्जेक्ट रेफ़रंस है. किसी रेफ़रंस से रिस्पॉन्स को एक्सट्रैक्ट करने के लिए, इस सिंटैक्स का इस्तेमाल करें: {objectName}.{jsonKey}. उदाहरण के लिए:

function.response.message

कार्रवाइयां

शुरू करना

क्लाउड फ़ंक्शन शुरू करता है.

फ़िलहाल, यह एक्सटेंशन एचटीटीपी ट्रिगर फ़ंक्शन को लागू करने की सुविधा देता है.

सिंटैक्स

<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>

अनुरोध के पैरामीटर

पैरामीटर ब्यौरा टाइप डिफ़ॉल्ट ज़रूरी है
region Google Cloud का वह क्षेत्र जहां फ़ंक्शन डिप्लॉय किया गया है. स्ट्रिंग. कोई नहीं. हां.
projectId GCP का प्रोजेक्ट आईडी. स्ट्रिंग. कोई नहीं. हां.
functionName शुरू करने के लिए, एचटीटीपी फ़ंक्शन का नाम. यह वह नाम है जिसका इस्तेमाल आपने फ़ंक्शन बनाते समय किया था (यह ज़रूरी नहीं है कि फ़ंक्शन के कोड से कोई नाम हो). स्ट्रिंग. कोई नहीं. हां.
तरीका फ़ंक्शन को शुरू करने के लिए इस्तेमाल किया जाने वाला एचटीटीपी तरीका. स्ट्रिंग. GET नहीं.
पेलोड फ़ंक्शन शुरू करने की प्रक्रिया के साथ भेजने के लिए पेलोड. JSON. कोई नहीं. नहीं.

जवाब

अगर कोई फ़ंक्शन है, तो उसका रिस्पॉन्स वैल्यू.

रिस्पॉन्स प्रॉपर्टी

कोई नहीं.

कॉन्फ़िगरेशन रेफ़रंस

एपीआई प्रॉक्सी में इस्तेमाल करने के लिए, इस एक्सटेंशन को कॉन्फ़िगर और डिप्लॉय करते समय, इनका इस्तेमाल करें. Apigee कंसोल का इस्तेमाल करके एक्सटेंशन को कॉन्फ़िगर करने का तरीका जानने के लिए, एक्सटेंशन जोड़ना और उसे कॉन्फ़िगर करना लेख पढ़ें.

सामान्य एक्सटेंशन प्रॉपर्टी

हर प्रॉपर्टी के लिए नीचे दी गई प्रॉपर्टी मौजूद हैं.

प्रॉपर्टी जानकारी डिफ़ॉल्ट ज़रूरी है
name वह नाम, जिसे आप एक्सटेंशन का यह कॉन्फ़िगरेशन दे रहे हैं. कभी नहीं हां
packageName एक्सटेंशन पैकेज का नाम, जो Apigee Edge से दिया गया है. कभी नहीं हां
version उस एक्सटेंशन पैकेज का वर्शन नंबर जिससे आपको एक्सटेंशन कॉन्फ़िगर करना है. कभी नहीं हां
configuration आप जिस एक्सटेंशन को जोड़ रहे हैं उसके लिए खास तौर पर कॉन्फ़िगरेशन वैल्यू. इस एक्सटेंशन पैकेज के लिए प्रॉपर्टी देखें कभी नहीं हां

इस एक्सटेंशन पैकेज के लिए प्रॉपर्टी

नीचे दी गई कॉन्फ़िगरेशन प्रॉपर्टी के लिए, खास तौर पर इस एक्सटेंशन के लिए वैल्यू तय करें.

प्रॉपर्टी ब्यौरा डिफ़ॉल्ट ज़रूरी है
क्रेडेंशियल Apigee Edge कंसोल में डाला गया कॉन्टेंट, आपके सेवा खाते की कुंजी वाली फ़ाइल का कॉन्टेंट होता है. मैनेजमेंट एपीआई की मदद से भेजने पर, यह base64 कोड में बदली गई वैल्यू होती है. यह सेवा खाते की कुंजी फ़ाइल से जनरेट होती है. कोई नहीं. हां.