स्टैंडअलोन Node.js ऐप्लिकेशन को डिप्लॉय करना

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

इस विषय में बताया गया है कि आपके लोकल सिस्टम से Apigee Edge पर Node.js ऐप्लिकेशन को कैसे डिप्लॉय किया जाए. इस विषय में, हम चर्चा करेंगे कि Apigee Edge पर Node.js ऐप्लिकेशन को डिप्लॉय करने के लिए, apigeetool नाम के कमांड-लाइन टूल का इस्तेमाल कैसे करना है.

Apigee Edge पर Node.js कोड को डिप्लॉय करने के बारे में जानकारी

apigeetool नाम की कमांड लाइन यूटिलिटी का इस्तेमाल करके, अपने लोकल सिस्टम से Apigee Edge तक, मौजूदा Node.js एपीआई ऐप्लिकेशन के साथ-साथ Node.js मॉड्यूल को डिप्लॉय किया जा सकता है. यह सुविधा, ऐप्लिकेशन और उसकी डिपेंडेंसी को एपीआई प्रॉक्सी में अपने-आप बंडल करती है और उसे Edge पर डिप्लॉय करती है.

उदाहरण के लिए, मान लें कि आपने Node.js में वेब ऐप्लिकेशन बनाने के लिए, Express का इस्तेमाल किया. यह ऐप्लिकेशन, एक एचटीटीपी सर्वर के तौर पर काम करता है. यह एचटीटीपी अनुरोधों को सुनता है, उन अनुरोधों को प्रोसेस करता है, डेटा दिखाता है. इसके अलावा, कई दूसरे काम करता है. जब किसी ऐप्लिकेशन को Edge पर डिप्लॉय करने के लिए, apigeetool का इस्तेमाल किया जाता है, तो वह प्रॉक्सी में रैप हो जाता है और Edge प्लैटफ़ॉर्म के हिसाब से काम करता है. इसके बाद, अपने ऐप्लिकेशन को उसके नए प्रॉक्सी यूआरएल से कॉल किया जा सकता है. साथ ही, OAuth की सुरक्षा, कोटा नीतियां, खतरे से सुरक्षा की नीतियां, कंडिशनल फ़्लो, कैश मेमोरी वगैरह जैसी स्टैंडर्ड Edge सुविधाओं के साथ, "इसे तैयार करके" इसमें वैल्यू जोड़ी जा सकती है.

APIgeetool क्या काम करता है?

जब deploynodeapp विकल्प के साथ apigeetool यूटिलिटी चलाई जाती है, तो यह:

  • यह Node.js ऐप्लिकेशन को घर में रखने के लिए, एपीआई प्रॉक्सी कॉन्फ़िगरेशन बंडल जनरेट करता है.
  • यह NPM (नोड पैकेज्ड मॉड्यूल) के साथ इंस्टॉल किए गए किसी भी Node.js पैकेज के साथ Node.js ऐप्लिकेशन को पैकेज करता है.
  • Edge मैनेजमेंट एपीआई का इस्तेमाल करके, Apigee Edge पर दिए गए संगठन में, एपीआई प्रॉक्सी कॉन्फ़िगरेशन बंडल को इंपोर्ट करता है.
  • एपीआई प्रॉक्सी को किसी एनवायरमेंट में डिप्लॉय करता है.
  • Apigee Edge पर Node.js ऐप्लिकेशन को एक्ज़ीक्यूट करता है और इसे नेटवर्क पर उपलब्ध कराता है.

apigeetool इस्तेमाल करने की तैयारी कर रहा है

शुरू करने से पहले, आपको apigeetool सुविधा इंस्टॉल करनी होगी.

apigeetool को एनपीएम की मदद से इंस्टॉल किया जा सकता है. इसके अलावा, कोड को GitHub से लिंक करके उसे इंस्टॉल किया जा सकता है.

एनपीएम से इंस्टॉल किया गया

apigeetool मॉड्यूल और इसकी डिपेंडेंसी, Node.js के लिए डिज़ाइन की गई हैं. इन्हें एनपीएम के ज़रिए तब ऐक्सेस किया जा सकता है, जब इनका इस्तेमाल किया जा रहा हो:

$ sudo npm install -g apigeetool

आम तौर पर, -g विकल्प *nix-आधारित मशीनों पर: /usr/local/lib/node_modules/apigeetool में मॉड्यूल रखता है.

GitHub से इंस्टॉल किया गया

GitHub से एपीआई प्लैटफ़ॉर्म टूल डाउनलोड करें या उसका क्लोन बनाएं. इंस्टॉल करने के निर्देशों के लिए, रिपॉज़िटरी की रूट डायरेक्ट्री में 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 ऐप्लिकेशन को डिप्लॉय करने के लिए:

  1. टर्मिनल विंडो में, अपने Node.js ऐप्लिकेशन की रूट डायरेक्ट्री cd करें.
  2. 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
    
  3. अपनी टर्मिनल विंडो में आउटपुट देखें. यह कुछ ऐसा दिखेगा:

    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 पर डिप्लॉय किया गया है. यह चल रहा है और अनुरोधों को हैंडल करने का इंतज़ार कर रहा है. यह टेस्ट के लिए तैयार है.

  4. अपने प्रॉक्सी की जांच करें. उदाहरण के लिए:

    $ curl http://myorg-test.apigee.net/myNodeApp
    Hello, My Node App!
    
  5. अगर आप चाहें, तो अपने Apigee Edge खाते में लॉग इन करें और मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) के एपीआई प्रॉक्सी पेज पर जाएं. आपको वहां अपनी नई प्रॉक्सी सूची में दिखाई देगी.

apigeetool डिपेंडेंट फ़ाइलों और मॉड्यूल को कैसे हैंडल करता है

अगर आपका Node.js ऐप्लिकेशन, इंस्टॉल किए गए मॉड्यूल पर निर्भर करता है, तो apigeetool इन मॉड्यूल को मैनेज करने के लिए, node_modules फ़ोल्डर को ज़िप करता है और उसे प्रॉक्सी बंडल में जोड़ता है. आपको कुछ और करने की ज़रूरत नहीं है. अतिरिक्त सोर्स कोड वाली सभी डायरेक्ट्री पर भी यही बात लागू होती है. apigeetool यूटिलिटी उन्हें ज़िप करता है और उन्हें बंडल के साथ डिप्लॉय करता है.

आप Edge मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) के एडिटर में, zip की गई इन डायरेक्ट्री में मौजूद फ़ाइलों में बदलाव नहीं कर सकते. अगर आपको इन्हें बदलना है, तो अपना प्रोजेक्ट एक्सपोर्ट करें, फ़ाइलों में स्थानीय तौर पर बदलाव करें, और फिर 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 ऐप्लिकेशन को एपीआई प्रॉक्सी से जोड़ने का एक और तरीका यह है कि प्रॉक्सी बनाते समय ऐप्लिकेशन को जोड़ा जाए. मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) और नए एपीआई प्रॉक्सी डायलॉग के ज़रिए, यह काम पूरी तरह से किया जा सकता है.

  1. एपीआई प्रॉक्सी की खास जानकारी वाले पेज पर, +एपीआई प्रॉक्सी पर क्लिक करें.
  2. नए एपीआई के प्रॉक्सी डायलॉग में, मौजूदा Node.js चुनें.
  3. फ़ाइलें चुनें बटन का इस्तेमाल करके, इंपोर्ट करने के लिए एक या उससे ज़्यादा Node.js फ़ाइलें चुनें.
  4. प्रॉक्सी को एक नाम दें. इस उदाहरण में, हमने इसे hellonode नाम दिया है.
  5. /v1 वर्शन को प्रोजेक्ट बेस पाथ में जोड़ें. अपने एपीआई का वर्शन बनाना सबसे सही तरीका है.
  6. बनाएं पर क्लिक करें.
  7. डेवलप करें व्यू में जाने के लिए डेवलप करें पर क्लिक करें.
  8. TargetEndpoint फ़ाइल को कोड एडिटर में खोलें.
  9. पक्का करें कि <ScriptTarget> एलिमेंट, मुख्य Node.js फ़ाइल के बारे में इस तरह से बताता हो:


    <ScriptTarget>
            <ResourceURL>node://server.js</ResourceURL>
            <Properties/>
    </ScriptTarget>
    
  10. सेव करें पर क्लिक करें.

नई Node.js संसाधन फ़ाइलें जोड़ना और शुरू करना

प्रॉक्सी में Node.js कोड को एक साथ जोड़ने का दूसरा तरीका यह है कि आप उसे यूज़र इंटरफ़ेस (यूआई) के ज़रिए सीधे जोड़ें या अपने लोकल फ़ाइल सिस्टम से अपलोड करें. यह भी तय किया जा सकता है कि कौनसी Node.js फ़ाइल मुख्य फ़ाइल है और प्रॉक्सी सर्वर को डिप्लॉय करने पर, Edge फ़ाइल कब शुरू होती है.

यूज़र इंटरफ़ेस (यूआई) की मदद से नई Node.js फ़ाइलें जोड़ना

मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) की मदद से, Edge प्लैटफ़ॉर्म पर मौजूद प्रॉक्सी में और Node.js सोर्स फ़ाइलें जोड़ी जा सकती हैं. उन्हें सीधे यूज़र इंटरफ़ेस (यूआई) में बनाया जा सकता है या अपने फ़ाइल सिस्टम से इंपोर्ट किया जा सकता है. सबसे पहले, चलिए देखते हैं कि यूज़र इंटरफ़ेस (यूआई) से ऐसा कैसे किया जाता है.

नई Node.js संसाधन फ़ाइल बनाने के लिए:

  1. डेवलप करें व्यू में, नया मेन्यू से नई स्क्रिप्ट चुनें.
  2. 'स्क्रिप्ट जोड़ें' डायलॉग में, फ़ाइल टाइप नोड चुनें और स्क्रिप्ट को नाम दें.
  3. जोड़ें पर क्लिक करें.

नई और खाली Node.js फ़ाइल, एडिटर में खुलती है. अपने कोड को कट करके, फ़ाइल में चिपकाया जा सकता है. यह फ़ाइल, नेविगेटर के स्क्रिप्ट सेक्शन में भी दिखती है.

[[{"type":media","view_mode;">media_large","fid": 2431","attributesalt -->","class":media-image","height":312","typeof": foaf:Image","width -->417"}}]]

अपने फ़ाइल सिस्टम से Node.js फ़ाइलें इंपोर्ट की जा रही हैं

अपने फ़ाइल सिस्टम से Node.js फ़ाइल को प्रॉक्सी में import के लिए:

  1. डेवलप करें व्यू में, नया मेन्यू से नई स्क्रिप्ट चुनें.
  2. 'स्क्रिप्ट जोड़ें' डायलॉग में, स्क्रिप्ट इंपोर्ट करें पर क्लिक करें.
  3. अपनी Node.js फ़ाइल चुनने के लिए, फ़ाइल टूल का इस्तेमाल करें.
  4. फ़ाइल का नाम डायलॉग में जोड़ा जाता है. हालांकि, आपके पास इसे बदलने का विकल्प होता है.
  5. जोड़ें पर क्लिक करें. फ़ाइल, नेविगेटर के स्क्रिप्ट सेक्शन में दिखती है और एडिटर में खुलती है.
  6. सेव करें पर क्लिक करें.

इंपोर्ट की गई फ़ाइल को इस्तेमाल करने के लिए, आपको एक और चरण पूरा करना होगा. इस बारे में, अगले सेक्शन में बताया गया है.

इंपोर्ट की गई Node.js फ़ाइल को शुरू करना

आप सिर्फ़ नई इंपोर्ट की गई या बनाई गई Node.js फ़ाइल का इस्तेमाल नहीं कर सकते. इसकी वजह यह है कि Edge के लिए ज़रूरी है कि एक Node.js फ़ाइल मुख्य फ़ाइल हो. मुख्य फ़ाइल की जानकारी टारगेट एंडपॉइंट की परिभाषा के <ScriptTarget> एलिमेंट में दी जाती है. यह तय करने के लिए कि कौनसी फ़ाइल मुख्य Node.js फ़ाइल है, यह तरीका अपनाएं:

  1. नेविगेटर में टारगेट एंडपॉइंट में जाकर, टारगेट एंडपॉइंट के नाम पर क्लिक करें. आम तौर पर, इसे डिफ़ॉल्ट कहा जाता है.
  2. कोड एडिटर में, <ScriptTarget> एलिमेंट में बदलाव करने के लिए <ResourceURL> को बदलें. इससे उस फ़ाइल का नाम दिखेगा जिसे आपको मुख्य Node.js फ़ाइल बनाना है. उदाहरण के लिए, अगर आपको hello-world.js नाम की फ़ाइल को मुख्य फ़ाइल के तौर पर इस्तेमाल करना है, तो ResourceURL एलिमेंट में node://hello-world.js डालना होगा.
  3. सेव करें पर क्लिक करें.

यहां से, फ़ाइल को उस प्रॉक्सी पाथ से शुरू किया जा सकता है जिसका आपने पहले इस्तेमाल किया था. उदाहरण के लिए, हम नमस्ते दुनिया देख रहे हैं! उदाहरण में, इसमें बेस पाथ v1/hello के बारे में बताया गया है. हालांकि, प्रॉक्सी एंडपॉइंट में बदलाव करके बेस पाथ को बदला जा सकता है.

  1. नेविगेटर में प्रॉक्सी एंडपॉइंट में जाकर, प्रॉक्सी एंडपॉइंट के नाम पर क्लिक करें (आम तौर पर, इसे डिफ़ॉल्ट कहा जाता है).
  2. कोड एडिटर में, <Httpप्रॉक्सीConnection> एलिमेंट में बदलाव करें. इसके लिए, <BasePath> को अपनी पसंद के हिसाब से बदलें. उदाहरण के लिए, अगर मौजूदा <BasePath> है और आपको इसे v1/my-node-file बनाना है, तो <BasePath> एलिमेंट को इस तरह से बदलें:

    <BasePath>/v1/my-node-file</BasePath>
    v1/hello
  3. सेव करें पर क्लिक करें.
  4. नए बेस पाथ का इस्तेमाल करके प्रॉक्सी को शुरू करें, जैसे कि:

    $ curl http://myorg-test.apigee.net/v1/my-node-file
    Hello, World!
    

Node.js कोड की मदद से प्रॉक्सी को एक्सपोर्ट और इंपोर्ट करना

Node.js कोड वाला प्रॉक्सी को Edge पर डिप्लॉय करने के बाद, प्रॉक्सी को वापस अपने सिस्टम पर एक्सपोर्ट किया जा सकता है. इसके बाद, इस पर काम किया जा सकता है और मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके, इसे Edge में फिर से इंपोर्ट किया जा सकता है. आम तौर पर, इस तरह की दोतरफ़ा यात्रा वाली तकनीक का इस्तेमाल किया जाता है.

  1. एपीआई प्रॉक्सी की खास जानकारी वाले पेज पर, डेवलप करें पर क्लिक करें.
  2. डेवलप करें पेज पर, मौजूदा रिविज़न डाउनलोड करें चुनें.
  3. डाउनलोड की गई फ़ाइल को अपने सिस्टम पर अनज़िप करें.

उसी मेन्यू से नए रिविज़न में इंपोर्ट करें को चुनकर, प्रॉक्सी बंडल को फिर से Edge में इंपोर्ट किया जा सकता है.

प्रॉक्सी को डिप्लॉय करने के लिए, इस एपीआई का इस्तेमाल भी किया जा सकता है. ज़्यादा जानकारी के लिए, कमांड लाइन से प्रॉक्सी डिप्लॉय करना देखें.

अगले चरण

अगले विषय में, किसी मौजूदा एपीआई प्रॉक्सी में Node.js को जोड़ना बताया गया है. इसमें, हमने बताया है कि अपने फ़ाइल सिस्टम के मौजूदा प्रॉक्सी में Node.js ऐप्लिकेशन को जोड़ने और उसे Edge में डिप्लॉय करने का तरीका क्या है.