Apigee Edge का दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं. जानकारी
इस विषय में, अपने लोकल सिस्टम से Node.js ऐप्लिकेशन को Apigee Edge पर डिप्लॉय करने का तरीका बताया गया है.
इस विषय में, हम apigeetool
नाम के कमांड-लाइन टूल का इस्तेमाल करने का तरीका बताएंगे. इस टूल का इस्तेमाल करके, Apigee Edge में Node.js ऐप्लिकेशन डिप्लॉय किए जा सकते हैं.
Apigee Edge में Node.js कोड को डिप्लॉय करने के बारे में जानकारी
apigeetool
नाम की कमांड-लाइन यूटिलिटी का इस्तेमाल करके, अपने लोकल सिस्टम से Apigee Edge पर किसी मौजूदा Node.js API ऐप्लिकेशन को डिप्लॉय किया जा सकता है. इसमें, किसी भी डिपेंडेंट Node.js मॉड्यूल को भी डिप्लॉय किया जा सकता है. यह यूटिलिटी ऐप्लिकेशन और उसकी डिपेंडेंसी को अपने-आप एपीआई प्रॉक्सी में बंडल करती है और उसे Edge पर डिप्लॉय करती है.
उदाहरण के लिए, मान लें कि आपने Node.js में वेब ऐप्लिकेशन बनाने के लिए Express का इस्तेमाल किया है. यह
ऐप्लिकेशन एक एचटीटीपी सर्वर के तौर पर काम करता है, जो एचटीटीपी अनुरोधों को सुनता है, उन अनुरोधों को प्रोसेस करता है, डेटा दिखाता है वगैरह. Edge पर Node.js ऐप्लिकेशन को डिप्लॉय करने के लिए apigeetool
का इस्तेमाल करने पर, उसे प्रॉक्सी में लपेट दिया जाता है और Edge प्लैटफ़ॉर्म के संदर्भ में चलाया जाता है. इसके बाद, अपने ऐप्लिकेशन को उसके नए प्रॉक्सी यूआरएल के ज़रिए कॉल किया जा सकता है. साथ ही, OAuth सुरक्षा, कोटा नीतियों, खतरे से सुरक्षा देने वाली नीतियों, शर्तों के हिसाब से फ़्लो, कैश मेमोरी, और कई अन्य स्टैंडर्ड Edge सुविधाओं के साथ "ऐप्लिकेशन को बेहतर" बनाकर, उसमें वैल्यू जोड़ी जा सकती है.
apigeetool क्या करता है?
जब apigeetool
सुविधा को deploynodeapp
विकल्प के साथ चलाया जाता है, तो:
- Node.js ऐप्लिकेशन को होस्ट करने के लिए, एपीआई प्रॉक्सी कॉन्फ़िगरेशन बंडल जनरेट करता है.
- NPM (Node Packaged Modules) की मदद से इंस्टॉल किए गए किसी भी Node.js पैकेज के साथ Node.js ऐप्लिकेशन को पैकेज करता है.
- Edge Management API का इस्तेमाल करके, एपीआई प्रॉक्सी कॉन्फ़िगरेशन बंडल को Apigee Edge पर दिए गए संगठन में इंपोर्ट करता है.
- एपीआई प्रॉक्सी को किसी एनवायरमेंट में डिप्लॉय करता है.
- यह Apigee Edge पर Node.js ऐप्लिकेशन को एक्ज़ीक्यूट करता है और उसे नेटवर्क पर उपलब्ध कराता है.
apigeetool का इस्तेमाल करने की तैयारी करना
शुरू करने से पहले, आपको apigeetool
यूटिलिटी इंस्टॉल करनी होगी.
आपके पास एनपीएम के ज़रिए apigeetool इंस्टॉल करने का विकल्प होता है. इसके अलावा, GitHub से कोड को क्लोन करके लिंक करके भी ऐसा किया जा सकता है.
एनपीएम से इंस्टॉल किया गया
apigeetool
मॉड्यूल और इसकी डिपेंडेंसी, Node.js के लिए डिज़ाइन की गई हैं. साथ ही, ये npm के ज़रिए उपलब्ध हैं. इसके लिए, यह कमांड इस्तेमाल करें:
$ sudo npm install -g apigeetool
आम तौर पर, -g विकल्प मॉड्यूल को इन जगहों पर डालता है:
/usr/local/lib/node_modules/apigeetool
*nix-आधारित मशीनों पर.
GitHub से इंस्टॉल किया गया
GitHub से API Platform Tools को डाउनलोड या क्लोन करें. इंस्टॉल करने के निर्देशों के लिए, रिपॉज़िटरी की रूट डायरेक्ट्री में README फ़ाइल देखें.
$ git clone https://github.com/apigee/apigeetool-node.git
इंस्टॉलेशन पूरा करने के बाद, पक्का करें कि apigeetool
एक्सीक्यूटेबल आपके पाथ में हो. इसकी जांच करने के लिए यह टाइप करें:
$ apigeetool -h
apigeetool की मदद से, Edge पर Node.js ऐप्लिकेशन को डिप्लॉय करना
ध्यान दें: डिप्लॉय करने से पहले, आपको अपने Apigee Edge संगठन का नाम, उपयोगकर्ता नाम, और Apigee Edge खाते का पासवर्ड पता होना चाहिए. apigeetool
कमांड को सही तरीके से बनाने के लिए, आपको इस जानकारी की ज़रूरत होगी.
apigeetool
का इस्तेमाल करके Node.js ऐप्लिकेशन को डिप्लॉय करने के लिए:
- टर्मिनल विंडो में,
cd
अपने Node.js ऐप्लिकेशन की रूट डायरेक्ट्री. deploynodeapp
कमांड का इस्तेमाल करके,apigeetool
सुविधा चलाएं:
$ apigeetool deploynodeapp -n {A name for your new proxy} -d {The root directory of your Node.js app} -m {The name of the main Node.js file} -o {Your org name on Edge} -e {The environment to deploy to} -b {The base URL for your proxy} -u {Your Edge email address} -p {Your Edge password}
उदाहरण के लिए:
$ apigeetool deploynodeapp -n myNodeApp -d . -m server.js -o myorg -e test -b /myNodeApp -u ntesla -p myPassword
- अपनी टर्मिनल विंडो में आउटपुट देखें. यह कुछ ऐसा दिखेगा:
Importing new application myNodeApp Imported new app revision 1 Deploying revision 1 Deployed. Proxy: "myNodeApp" Revision 1 Environment: test BasePath: /myNodeApp Status: deployed
अगर आपको "स्टेटस: डिप्लॉय किया गया" दिखता है, तो इसका मतलब है कि आपका ऐप्लिकेशन डिप्लॉय हो गया है. सब कुछ ठीक-ठाक हो गया. आपका Node.js ऐप्लिकेशन, एपीआई प्रॉक्सी में लिपटा हुआ है और Edge पर डिप्लॉय किया गया है. साथ ही, यह चल रहा है और रिक्वेस्ट को हैंडल करने के लिए इंतज़ार कर रहा है. अब इसे टेस्ट किया जा सकता है.
- अपनी प्रॉक्सी की जांच करें. उदाहरण के लिए:
$ curl http://myorg-test.apigee.net/myNodeApp Hello, My Node App!
- अगर आप चाहें, तो अपने Apigee Edge खाते में लॉग इन करें और मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) के एपीआई प्रॉक्सी पेज पर जाएं. आपको वहां अपनी नई प्रॉक्सी दिखेगी.
apigeetool अलग-अलग फ़ाइलों और मॉड्यूल को कैसे मैनेज करता है
अगर आपका Node.js ऐप्लिकेशन, इंस्टॉल किए गए मॉड्यूल पर निर्भर करता है, तो apigeetool उन्हें मैनेज करता है. इसके लिए, वह node_modules
फ़ोल्डर को ज़िप करके, उसे प्रॉक्सी बंडल में जोड़ता है. आपको कुछ और करने की ज़रूरत नहीं है. यह बात उन सभी डायरेक्ट्री पर भी लागू होती है जिनमें अतिरिक्त सोर्स कोड होता है. apigeetool यूटिलिटी उन्हें ज़िप करती है और बंडल के साथ डिप्लॉय करती है.
Edge मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) के एडिटर पर, इन ज़िप की गई डायरेक्ट्री में मौजूद फ़ाइलों में बदलाव नहीं किया जा सकता. अगर आपको उनमें बदलाव करना है, तो अपना प्रोजेक्ट एक्सपोर्ट करें और फ़ाइलों में स्थानीय तौर पर बदलाव करें. इसके बाद, apigeetool का इस्तेमाल करके या मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके, एक्सपोर्ट किए गए प्रोजेक्ट को इंपोर्ट करके फिर से डिप्लॉय करें. "Node.js कोड की मदद से किसी प्रॉक्सी को एक्सपोर्ट और इंपोर्ट करना" लेख भी पढ़ें.
apigeetool के इस्तेमाल से जुड़ी बुनियादी जानकारी
apigeetool
सुविधा के इनपुट पैरामीटर के इस्तेमाल की बुनियादी जानकारी के लिए,
यह डालें:
$ apigeetool deploynodeapp -h Usage: deploynodeapp -n [name] -o [organization] -e [environment] -d [directory name] -m [main script file] -u [username] -p [password] -b [base path] -l [apigee API url] -z [zip file] -i -h -o Apigee organization name -e Apigee environment name -n Apigee proxy name -d Apigee proxy directory -m Main script name: Should be at the top level of the directory -u Apigee user name -p Apigee password -b Base path (optional, defaults to /) -L Apigee API URL (optional, defaults to https://api.enterprise.apigee.com) -z ZIP file to save (optional for debugging) -i import only, do not deploy -R Resolve Node.js modules on Apigee Edge. Equivalent to running npm install on your project. -U Uploads Node.js modules to Apigee Edge. -h Print this message
मौजूदा Node.js फ़ाइलों के साथ नया प्रॉक्सी बनाना
किसी मौजूदा Node.js ऐप्लिकेशन को एपीआई प्रॉक्सी में इंटिग्रेट करने का दूसरा तरीका यह है कि प्रॉक्सी बनाते समय ऐप्लिकेशन को जोड़ें. ऐसा करने के लिए, मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) और नए एपीआई प्रॉक्सी डायलॉग का इस्तेमाल करें.
- एपीआई प्रॉक्सी की खास जानकारी वाले पेज पर, +एपीआई प्रॉक्सी पर क्लिक करें.
- 'नया एपीआई प्रॉक्सी' डायलॉग में, मौजूदा Node.js चुनें.
- इंपोर्ट करने के लिए, एक या उससे ज़्यादा Node.js फ़ाइलें चुनने के लिए, फ़ाइलें चुनें बटन का इस्तेमाल करें.
- प्रॉक्सी को कोई नाम दें. इस उदाहरण में, हम इसे
hellonode
कह रहे हैं. - प्रोजेक्ट के बुनियादी पाथ में वर्शन
/v1
जोड़ें. अपने एपीआई का वर्शन बनाना सबसे सही तरीका है. - बिल्ड पर क्लिक करें.
- 'डेवलप करें' व्यू में जाने के लिए, डेवलप करें पर क्लिक करें.
TargetEndpoint
फ़ाइल को कोड एडिटर में खोलें.- पक्का करें कि
<ScriptTarget>
एलिमेंट में मुख्य Node.js फ़ाइल के बारे में जानकारी दी गई हो, जैसा कि यहां बताया गया है:
<ScriptTarget> <ResourceURL>node://server.js</ResourceURL> <Properties/> </ScriptTarget>
- सेव करें पर क्लिक करें.
नई Node.js संसाधन फ़ाइलें जोड़ना और उन्हें लागू करना
किसी प्रॉक्सी में Node.js कोड जोड़ने का एक और तरीका है. इसके लिए, सीधे यूज़र इंटरफ़ेस (यूआई) या अपने लोकल फ़ाइल सिस्टम से कोड अपलोड करें. यह भी बताया जा सकता है कि कौनसी Node.js फ़ाइल मुख्य फ़ाइल है. यह वह फ़ाइल होती है जिसे प्रॉक्सी डिप्लॉय होने पर Edge इस्तेमाल करता है.
यूज़र इंटरफ़ेस (यूआई) की मदद से, नई Node.js फ़ाइलें जोड़ना
मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) की मदद से, Edge प्लैटफ़ॉर्म पर मौजूद किसी प्रॉक्सी में अतिरिक्त Node.js सोर्स फ़ाइलें जोड़ी जा सकती हैं. इन्हें सीधे यूज़र इंटरफ़ेस (यूआई) में बनाया जा सकता है या अपने फ़ाइल सिस्टम से इंपोर्ट किया जा सकता है. सबसे पहले, जानते हैं कि इसे यूज़र इंटरफ़ेस (यूआई) से कैसे किया जा सकता है.
नई Node.js रिसॉर्स फ़ाइल बनाने के लिए:
- 'डिवेलप करें' व्यू में, 'नया' मेन्यू से नई स्क्रिप्ट चुनें.
- स्क्रिप्ट जोड़ें डायलॉग में, नोड फ़ाइल टाइप चुनें और स्क्रिप्ट को नाम दें.
- जोड़ें पर क्लिक करें.
नई और खाली Node.js फ़ाइल, एडिटर में खुलती है. कोड को काटकर, फ़ाइल में चिपकाया जा सकता है. यह फ़ाइल, नेविगेटर के स्क्रिप्ट सेक्शन में भी दिखती है.
[[{"type":"media","view_mode":"media_large","fid":"2431","attributes":{"alt":"","class":"media-image","height":"312","typeof":"foaf:Image","width":"417"}}]]
अपने फ़ाइल सिस्टम से Node.js फ़ाइलें इंपोर्ट करना
अपने फ़ाइल सिस्टम से किसी Node.js फ़ाइल को प्रोक्सी में import करने के लिए:
- 'डिवेलप करें' व्यू में, 'नया' मेन्यू से नई स्क्रिप्ट चुनें.
- 'स्क्रिप्ट जोड़ें' डायलॉग में, स्क्रिप्ट इंपोर्ट करें पर क्लिक करें.
- अपनी Node.js फ़ाइल चुनने के लिए, फ़ाइल टूल का इस्तेमाल करें.
- फ़ाइल का नाम डायलॉग में जोड़ा जाता है, लेकिन अगर आप चाहें, तो इसमें बदलाव किया जा सकता है.
- जोड़ें पर क्लिक करें. यह फ़ाइल, नेविगेटर के स्क्रिप्ट सेक्शन में दिखती है और एडिटर में खुलती है.
- सेव करें पर क्लिक करें.
अगर आपको इंपोर्ट की गई फ़ाइल को इस्तेमाल करना है, तो अगले सेक्शन में बताए गए तरीके से एक और चरण पूरा करना होगा.
इंपोर्ट की गई Node.js फ़ाइल को कॉल करना
हाल ही में इंपोर्ट की गई या बनाई गई Node.js फ़ाइल को सीधे तौर पर इंवोक नहीं किया जा सकता. इसकी वजह यह है कि Edge के लिए, एक Node.js फ़ाइल को मुख्य फ़ाइल होना ज़रूरी है. मुख्य फ़ाइल, टारगेट एंडपॉइंट की परिभाषा के <ScriptTarget> एलिमेंट में बताई गई है. यह तय करने के लिए कि कौनसी फ़ाइल मुख्य Node.js फ़ाइल है, यह करें:
- Navigator में टारगेट एंडपॉइंट में जाकर, टारगेट एंडपॉइंट के नाम पर क्लिक करें. आम तौर पर, इसे default कहा जाता है.
- कोड एडिटर में, <ScriptTarget> एलिमेंट में बदलाव करें. इसके लिए, <ResourceURL> को बदलकर उस फ़ाइल का नाम डालें जिसे आपको मुख्य Node.js फ़ाइल बनाना है. उदाहरण के लिए, अगर आपको
hello-world.js
नाम की फ़ाइल को मुख्य फ़ाइल बनाना है, तो ResourceURL एलिमेंट में:node://hello-world.js
डालें. - सेव करें पर क्लिक करें.
अब आपके पास उस प्रॉक्सी पाथ का इस्तेमाल करके फ़ाइल को फिर से खोलने का विकल्प है जिसका इस्तेमाल आपने पहले किया था. उदाहरण के लिए,
हम Hello World! के उदाहरण पर नज़र डाल रहे हैं, जहां बेस पाथ v1/hello
तय किया गया है. हालांकि, प्रॉक्सी एंडपॉइंट में बदलाव करके, बेस पाथ बदला जा सकता है.
- नेविगेटर में, प्रॉक्सी एंडपॉइंट में जाकर, प्रॉक्सी एंडपॉइंट के नाम पर क्लिक करें. आम तौर पर, इसे डिफ़ॉल्ट कहा जाता है.
- कोड एडिटर में, <HttpProxyConnection> एलिमेंट में बदलाव करें. इसके लिए, <BasePath> को अपनी पसंद के नाम पर बदलें. उदाहरण के लिए, अगर मौजूदा <BasePath>
की वैल्यू
v1/hello
है और आपको इसेv1/my-node-file
बनाना है, तो <BasePath> एलिमेंट को इस तरह बदलें:
<BasePath>/v1/my-node-file</BasePath>
- सेव करें पर क्लिक करें.
- नए बेस पाथ का इस्तेमाल करके प्रॉक्सी को इस तरह से चालू करें:
$ curl http://myorg-test.apigee.net/v1/my-node-file Hello, World!
Node.js कोड की मदद से किसी प्रॉक्सी को एक्सपोर्ट और इंपोर्ट करना
Edge में Node.js कोड वाली प्रॉक्सी को डिप्लॉय करने के बाद, आपके पास उस प्रॉक्सी को कभी भी अपने सिस्टम में वापस एक्सपोर्ट करने का विकल्प होता है. इसके बाद, उस पर काम करके, मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके उसे Edge में फिर से इंपोर्ट किया जा सकता है. आम तौर पर, इस तरह की राउंड-ट्रिप डेवलपमेंट तकनीक का इस्तेमाल किया जाता है.
- एपीआई प्रॉक्सी की खास जानकारी वाले पेज पर, डेवलप करें पर क्लिक करें.
- 'डेवलप करें' पेज पर, मौजूदा रिविज़न डाउनलोड करें को चुनें.
- अपने सिस्टम पर डाउनलोड की गई फ़ाइल को अनज़िप करें.
इसी मेन्यू से नए रिविज़न में इंपोर्ट करें को चुनकर, प्रॉक्सी बंडल को Edge में वापस इंपोर्ट किया जा सकता है.
प्रॉक्सी डिप्लॉय करने के लिए, एपीआई का इस्तेमाल भी किया जा सकता है. ज़्यादा जानकारी के लिए, कमांड लाइन से प्रोक्सी डिप्लॉय करना लेख पढ़ें.
अगले चरण
अगले विषय, यानी कि मौजूदा एपीआई प्रॉक्सी में Node.js जोड़ना लेख में, हमने आपको Node.js ऐप्लिकेशन को अपने फ़ाइल सिस्टम में मौजूद किसी मौजूदा प्रॉक्सी में जोड़ने और उसे Edge में डिप्लॉय करने का तरीका बताया है.