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

Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं.
जानकारी

वर्शन 1.3.1

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

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

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

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

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

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

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

  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 में डिप्लॉय किया गया है. अगर अनुरोध में कोई मैसेज प्रॉपर्टी शामिल है, तो कोड उसे दिखाता है. ऐसा न करने पर, यह जवाब के तौर पर "नमस्ते दुनिया!" दिखाता है.

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

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

function.response.message

कार्रवाइयाँ

शुरू करना

Cloud फ़ंक्शन शुरू करता है.

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

सिंटैक्स

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

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

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

जवाब

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

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

कोई नहीं.

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

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

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

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

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

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

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

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