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

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

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

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

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

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

apigeetool क्या करता है?

deploynodeapp विकल्प के साथ apigeetool यूटिलिटी चलाने पर, यह:

  • Node.js ऐप्लिकेशन को रखने के लिए, एपीआई प्रॉक्सी कॉन्फ़िगरेशन बंडल जनरेट करता है.
  • Node.js ऐप्लिकेशन को, एनपीएम (Node Packaged Modules) के साथ इंस्टॉल किए गए 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 एक्ज़ीक्यूटेबल, आपके Path में हो. इसे आज़माने के लिए, यह टाइप करें:

$ 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

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

  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. 'स्क्रिप्ट जोड़ें' डायलॉग में, फ़ाइल टाइप के तौर पर Node चुनें और स्क्रिप्ट को नाम दें.
  3. जोड़ें पर क्लिक करें.

एडिटर में, 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 फ़ाइल इंपोर्ट करने के लिए:

  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. सेव करें पर क्लिक करें.

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

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

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

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

Node.js कोड वाली प्रॉक्सी को एक्सपोर्ट और इंपोर्ट करना

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

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

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

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

अगले चरण

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