यह Apigee Edge के दस्तावेज़ हैं.
पर जाएं
Apigee X दस्तावेज़. info
वर्शन 1.0.5
अपने 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 फ़ंक्शन शुरू करना
यहां दिए गए उदाहरण में, Google Cloud Functions एक्सटेंशन को कॉल करने वाली ExtensionCallout नीति दिखाई गई है. एक्सटेंशन, Cloud Functions API को चालू करने पर शामिल किए गए डिफ़ॉल्ट "hello world" फ़ंक्शन को कॉल करता है.
यहां दिया गया Node.js JavaScript, GCP खाते के लिए Cloud Functions में डिप्लॉय किया गया है. अगर अनुरोध में मैसेज प्रॉपर्टी शामिल है, तो कोड उसे दिखाता है. अन्यथा, यह रिस्पॉन्स के तौर पर "Hello 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 के तौर पर सेव किया जाता है. यहां दिए गए 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 Function, JSON रिस्पॉन्स दिखाता है और आपने parsed="true" सेट किया है, तो एक्सटेंशन से मिलने वाला रिस्पॉन्स, ऑब्जेक्ट रेफ़रंस होता है. रेफ़रंस से रिस्पॉन्स निकालने के लिए, इस सिंटैक्स का इस्तेमाल करें: {objectName}.{jsonKey}. उदाहरण के लिए:
function.response.message
कार्रवाइयां
शुरू करना
Cloud Function को शुरू करता है.
फ़िलहाल, यह एक्सटेंशन, एचटीटीपी ट्रिगर फ़ंक्शन को शुरू करने की सुविधा देता है.
सिंटैक्स
<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 कंसोल में डालने पर, यह आपके सेवा खाते की कुंजी वाली फ़ाइल का कॉन्टेंट होता है. मैनेजमेंट एपीआई के ज़रिए भेजने पर, यह सेवा खाते की कुंजी वाली फ़ाइल से जनरेट की गई, base64 में एनकोड की गई वैल्यू होती है. | कोई नहीं. | हां. |