Apigee Edge के दस्तावेज़ देखे जा रहे हैं.
Apigee X के दस्तावेज़ पर जाएं. जानकारी
वर्शन 2.0.2
आपके Google Cloud प्रोजेक्ट के ज़रिए डिप्लॉय किए गए Cloud Functions को चालू करना.
फ़िलहाल, यह एक्सटेंशन एचटीटीपी ट्रिगर फ़ंक्शन को चालू करने की सुविधा देता है.
ज़रूरी शर्तें
इस कॉन्टेंट में, इस एक्सटेंशन को कॉन्फ़िगर करने और इस्तेमाल करने के बारे में जानकारी दी गई है. ExtensionCallout नीति का इस्तेमाल करके, एपीआई प्रॉक्सी से एक्सटेंशन का इस्तेमाल करने से पहले, आपको ये काम करने होंगे:
Cloud Functions API को चालू करें.
अपने Google Cloud प्रोजेक्ट के लिए, Cloud Functions में फ़ंक्शन डिफ़ाइन करें और डिप्लॉय करें.
आपको फ़ंक्शन के लिए जिस लेवल का ऐक्सेस चाहिए उसके लिए, IAM के ज़रिए उपयोगकर्ता को ऐक्सेस दें. उदाहरण के लिए, फ़ंक्शन का ऐक्सेस सिर्फ़ उस सेवा खाते तक सीमित किया जा सकता है जिसका इस्तेमाल एक्सटेंशन को कॉन्फ़िगर करने के लिए किया जाता है.
GCP Console का इस्तेमाल करके, सेवा खाते के लिए कुंजी जनरेट करें.
कॉन्फ़िगरेशन रेफ़रंस का इस्तेमाल करके एक्सटेंशन को जोड़ने और कॉन्फ़िगर करने के दौरान, जनरेट हुई कुंजी वाली JSON फ़ाइल के कॉन्टेंट का इस्तेमाल करें.
Cloud Functions के बारे में जानकारी
Google Cloud Functions की मदद से, Google Cloud पर फ़ंक्शन बनाए और डिप्लॉय किए जा सकते हैं. इसके बाद, उन फ़ंक्शन को किसी दूसरे कोड से शुरू किया जा सकता है. Cloud Functions के बारे में जानने के लिए, इनमें से कोई एक क्विकस्टार्ट आज़माएं.
सैंपल
यहां दिए गए उदाहरण में, ExtensionCallout नीति का इस्तेमाल करके, Cloud Functions में फ़ंक्शन शुरू करने का तरीका बताया गया है.
Node.js फ़ंक्शन शुरू करना
यहां दिए गए उदाहरण में, ExtensionCallout नीति, Google Cloud Functions एक्सटेंशन को कॉल कर रही है. एक्सटेंशन, Cloud Functions API चालू करने पर शामिल किए गए डिफ़ॉल्ट "hello world" फ़ंक्शन को कॉल करता है.
नीचे दिया गया 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 के तौर पर सेव किया जाता है. नीचे दिए गए ExtensionCallout नीति के कॉन्फ़िगरेशन कोड में इस नाम का इस्तेमाल किया गया है. साथ ही, इसमें क्षेत्र और प्रोजेक्ट आईडी की वैल्यू भी दी गई हैं. ये वैल्यू, 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 Functions, 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>
अनुरोध के पैरामीटर
| पैरामीटर | ब्यौरा | टाइप | डिफ़ॉल्ट | ज़रूरी है |
|---|---|---|---|---|
| प्रांत | Google Cloud का वह रीजन जहां फ़ंक्शन डिप्लॉय किया गया है. | स्ट्रिंग. | कोई नहीं. | हां. |
| projectId | GCP प्रोजेक्ट आईडी. | स्ट्रिंग. | कोई नहीं. | हां. |
| functionName | इनवोक किए जाने वाले एचटीटीपी फ़ंक्शन का नाम. यह वह नाम है जिसका इस्तेमाल आपने फ़ंक्शन बनाते समय किया था. यह ज़रूरी नहीं है कि यह नाम, फ़ंक्शन के कोड में मौजूद हो. | स्ट्रिंग. | कोई नहीं. | हां. |
| तरीका | फ़ंक्शन को चालू करते समय इस्तेमाल किया जाने वाला एचटीटीपी मेथड. | स्ट्रिंग. | GET |
नहीं. |
| पेलोड | फ़ंक्शन को शुरू करने के लिए भेजा जाने वाला पेलोड. | JSON. | कोई नहीं. | नहीं. |
जवाब
अगर कोई फ़ंक्शन दिया गया है, तो उसकी रिस्पॉन्स वैल्यू.
जवाब की प्रॉपर्टी
कोई नहीं.
कॉन्फ़िगरेशन का रेफ़रंस
एपीआई प्रॉक्सी में इस्तेमाल करने के लिए इस एक्सटेंशन को कॉन्फ़िगर और डिप्लॉय करते समय, इनका इस्तेमाल करें. Apigee कंसोल का इस्तेमाल करके एक्सटेंशन को कॉन्फ़िगर करने का तरीका जानने के लिए, एक्सटेंशन जोड़ना और उसे कॉन्फ़िगर करना लेख पढ़ें.
एक्सटेंशन की सामान्य प्रॉपर्टी
हर प्रॉपर्टी के लिए नीचे दी गई प्रॉपर्टी मौजूद हैं.
| प्रॉपर्टी | जानकारी | डिफ़ॉल्ट | ज़रूरी है |
|---|---|---|---|
name |
वह नाम, जिसे आप एक्सटेंशन का यह कॉन्फ़िगरेशन दे रहे हैं. | कभी नहीं | हां |
packageName |
एक्सटेंशन पैकेज का नाम, जो Apigee Edge से दिया गया है. | कभी नहीं | हां |
version |
उस एक्सटेंशन पैकेज का वर्शन नंबर जिससे आपको एक्सटेंशन कॉन्फ़िगर करना है. | कभी नहीं | हां |
configuration |
आप जिस एक्सटेंशन को जोड़ रहे हैं उसके लिए खास तौर पर कॉन्फ़िगरेशन वैल्यू. इस एक्सटेंशन पैकेज के लिए प्रॉपर्टी देखें | कभी नहीं | हां |
इस एक्सटेंशन पैकेज के लिए प्रॉपर्टी
इस एक्सटेंशन के लिए, यहां दी गई कॉन्फ़िगरेशन प्रॉपर्टी की वैल्यू तय करें.
| प्रॉपर्टी | ब्यौरा | डिफ़ॉल्ट | ज़रूरी है |
|---|---|---|---|
| क्रेडेंशियल | Apigee Edge कंसोल में डालने पर, यह आपकी सेवा खाते की कुंजी फ़ाइल का कॉन्टेंट होता है. Management API के ज़रिए भेजे जाने पर, यह सेवा खाते की कुंजी फ़ाइल से जनरेट की गई base64-encoded वैल्यू होती है. | कोई नहीं. | हां. |