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