होस्ट किए गए टारगेट के टास्क

आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

होस्ट किए गए टारगेट प्रॉक्सी को डिप्लॉय न करना

जब आप किसी ऐसे Edge प्रॉक्सी को डिप्लॉय नहीं करते हैं जिसमें होस्ट किए गए टारगेट ऐप्लिकेशन शामिल है, तो होस्ट किए गए Target ऐप्लिकेशन को डिप्लॉय नहीं किया गया है, लेकिन ऐप्लिकेशन की बुनियादी इमेज नहीं मिटाई गई है. अगर आपको प्रॉक्सी को फिर से डिप्लॉय करने के बाद, होस्ट किए गए टारगेट ऐप्लिकेशन को फिर से डिप्लॉय किया जाता है.

होस्ट किए गए टारगेट प्रॉक्सी को मिटाना

होस्ट किए गए टारगेट प्रॉक्सी को मिटाने के बाद, इससे जुड़े रनटाइम इंस्टेंस रुक जाएंगे कम या ज़्यादा कर सकता है. हालांकि, ऐप्लिकेशन कोड बना रहेगा.

लॉग फ़ाइलें ऐक्सेस करना

लॉग फ़ाइलों को डीबग करने और समस्या हल करने में मदद मिलती है. आप होस्ट किए गए टारगेट का डिप्लॉयमेंट:

  • बिल्ड लॉग - आपको होस्ट किए गए टारगेट ऐप्लिकेशन को डिप्लॉय और बनाने से जुड़ा आउटपुट दिखाता है.
  • रनटाइम लॉग - आपको होस्ट किए गए टारगेट ऐप्लिकेशन से जुड़ा आउटपुट दिखाता है. रनटाइम लॉग एनवायरमेंट के दायरे में आते हैं और मौजूदा समय में डिप्लॉय किए गए प्रॉक्सी रिविज़न की लॉग जानकारी दिखाते हैं.

Edge के यूज़र इंटरफ़ेस (यूआई) से लॉग ऐक्सेस करना

  1. इस लिंक पर जाएं: apigee.com/edge
  2. अपने लॉगिन क्रेडेंशियल डालें और साइन इन करें पर क्लिक करें.
  3. डेवलप करें > एपीआई प्रॉक्सी पर क्लिक करें.
  4. वह प्रॉक्सी चुनें जिसके लिए आपको लॉग देखना है.
  5. डेवलप करें टैब पर क्लिक करें.
  6. बिल्ड लॉग देखने के लिए, लॉग बनाएं पर क्लिक करें.
  7. रनटाइम लॉग देखने के लिए, रनटाइम लॉग पर क्लिक करें.

एपीआई की मदद से लॉग ऐक्सेस करना

होस्ट किए गए टारगेट के लॉग पाने के लिए, Edge API का भी इस्तेमाल किया जा सकता है. जानकारी के लिए, यह देखें कैश मेमोरी में सेव किए गए Node.js के लॉग पाएं.

निजी एनपीएम डेटा स्टोर करने की जगह का इस्तेमाल करना

इस सेक्शन में बताया गया है कि होस्ट किए गए टारगेट पर Node.js प्रॉक्सी को उन मामलों में कैसे डिप्लॉय करें जहां आपको निजी NPM डेटा स्टोर करने की जगह का इस्तेमाल का इस्तेमाल कैसे किया जा सकता है.

डेटा स्टोर करने की निजी जगह का इस्तेमाल करने के बारे में ज़रूरी जानकारी

Node.js ऐप्लिकेशन को Edge में डिप्लॉय करने पर, आपके प्रोजेक्ट की सभी डिपेंडेंसी अपने-आप इंपोर्ट हो जाती हैं डिप्लॉयमेंट प्रोसेस का हिस्सा है. दरअसल, होस्ट किए गए टारगेट आपके कोड पर npm install रन करते हैं. हालांकि, अगर अपने डेवलपमेंट एनवायरमेंट में निजी एनपीएम रिपॉज़िटरी का इस्तेमाल किया जाता है, तो निजी डिपेंडेंसी को क्लाउड में ठीक नहीं किया जा सकता. तय सीमा में इस मामले में, समाधान यह है कि आप --bundled-dependencies विकल्प का उपयोग करें जब आप डिप्लॉयमेंट यूटिलिटी apigeetool. इन्हें भी देखें Node.js को अपने सिस्टम से Edge पर डिप्लॉय करें.

जब आप apigeetool पर --bundled-dependencies फ़्लैग का इस्तेमाल करते हैं, तो आपके Node.js ऐप्लिकेशन को होस्ट किए गए टारगेट और सूची में दी गई किसी भी स्थानीय/निजी फ़ाइलों में अपलोड किया जाएगा bundledDependencies अरे में package.json को ज़िप करके बंडल के साथ अपलोड किया जाता है.

हालांकि, यह आम स्थिति नहीं है, लेकिन ध्यान रखें कि अगर किसी सार्वजनिक एनपीएम रिपॉज़िटरी का डुप्लीकेट वर्शन बनाया जाता है, तो डिप्लॉय नहीं किया जा सकता अगर आपके डिप्लॉयमेंट बंडल में ऐसी .npmrc या package-lock.json फ़ाइल शामिल है जो आपके आईने की मदद से. इस मामले में, .npmrc या package-lock.json को हटा दें को डिप्लॉय किया जा सकता है.

निजी एनपीएम डेटा स्टोर करने की जगह के साथ डिप्लॉय करना

निजी एनपीएम डेटा स्टोर करने की जगह से मिले मॉड्यूल इस्तेमाल करने के लिए यह तरीका अपनाएं:

  1. एनपीएम में लॉग इन करें:
    npm login
  2. npm पुष्टि टोकन पाएं:
    1. अपने .npmrc (~/.npmrc में होना चाहिए) पर जाएं.
    2. अपने .npmrc में, लाइन के आखिर में मौजूद टोकन को नोट करें, जो इस तरह दिखता है:

      //registry.npmjs.org/:_authToken=****
    3. इसके अलावा, सूची बनाने के लिए npm token <list | create | revoke> कमांड का इस्तेमाल करें, बनाने या रद्द करने के लिए पुष्टि करने का टोकन. npm-टोकन देखें दस्तावेज़ देखें.
  3. नीचे बताए गए तरीके से, Key Value Maps के कॉन्फ़िगरेशन पेज को ऐक्सेस करें.

    Edge

    Edge यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके, पासकोड की वैल्यू वाले मैप के कॉन्फ़िगरेशन पेज को ऐक्सेस करने के लिए:

    1. apigee.com/edge में साइन इन करें.
    2. एडमिन > एनवायरमेंट > बाएं नेविगेशन बार में मौजूद 'की वैल्यू मैप' पर क्लिक करें.

    क्लासिक Edge (प्राइवेट क्लाउड)

    क्लासिक एज यूआई का इस्तेमाल करके, पासकोड की वैल्यू वाले मैप के कॉन्फ़िगरेशन पेज को ऐक्सेस करने के लिए:

    1. http://ms-ip:9000 में साइन इन करें, जहां ms-ip मैनेजमेंट सर्वर नोड का आईपी पता या डीएनएस नाम.
    2. एपीआई > चुनें एनवायरमेंट का कॉन्फ़िगरेशन > मुख्य नेविगेशन बार में मौजूद 'की वैल्यू मैप' पर क्लिक करें.
  4. + की वैल्यू मैप पर क्लिक करें.
  5. नई कुंजी की वैल्यू वाले मैप के डायलॉग में, कोई नाम डालें और एन्क्रिप्ट (सुरक्षित) किया गया चुनें.
  6. जोड़ें पर क्लिक करें.
  7. हर केवीएम में वह ऑथराइज़ेशन टोकन जोड़ें जिसे आपने पहले दिखाया था या नई एंट्री के तौर पर बनाया था जो आपने अभी-अभी बनाया है.
  8. अपनी app.yaml फ़ाइल में, केवीएम और कुंजी का रेफ़रंस देने वाली एंट्री जोड़ें यह npm पुष्टि टोकन से जुड़ा होता है. यह कुछ ऐसी नज़र आनी चाहिए:
  9. env:
    - name: NPM_TOKEN
     valueRef:
       name: npm_store
       key: private_token

    कहां:

    • टॉप लेवल name एट्रिब्यूट, एनवायरमेंट के नाम से मेल खाता है बनाया जाएगा.
    • valueRef में मौजूद नाम, आपको केवीएम से मेल खाता है पहले बनाया गया.
    • key एट्रिब्यूट उस पासकोड से मेल खाता है जो आपके एनपीएम टोकन को मैप करता है को केवीएम में जोड़ा गया.
  10. .npmrc फ़ाइल उसी डायरेक्ट्री में बनाएं जिसमें आपकी Package.json की फ़ाइल है. यह फ़ाइल इसके जैसी दिखनी चाहिए:
    //registry.npmjs.org/:_authToken=${NPM_TOKEN}
    या अगर आप registry.npmjs.org का इस्तेमाल नहीं कर रहे हैं, तो आप स्कोप सेट कर सकते हैं .npmrc फ़ाइल में इस तरह की एक पंक्ति जोड़कर @myscope:registry=https://mycustomregistry.example.org npmrc दस्तावेज़ भी देखें.
  11. .npmrc फ़ाइल और app.yaml फ़ाइलों को शामिल करके, Node.js प्रॉक्सी को अपलोड या अपडेट करें.
  12. पक्का करें कि आपका नया या अपडेट किया गया प्रॉक्सी डिप्लॉय करता है और आपकी पसंद के निजी डेटा स्टोर करने की जगह के साथ काम करता है मॉड्यूल का इस्तेमाल नहीं किया जाएगा.
  13. अगर प्रॉक्सी डिप्लॉय नहीं होती है, तो बिल्ड लॉग देखें और देखें कि क्या यह निजी एनपीएम मॉड्यूल. अगर ऐसा है, तो:
    1. 'बनाएं' टैब में, पक्का करें कि .npmrc मौजूद हो.
    2. पक्का करें कि आपका टोकन मान्य है. मॉड्यूल को स्थानीय तौर पर इंस्टॉल करने की कोशिश करें, जहां टोकन मौजूद हो kvm में) देखें.
    3. अगर पसंद के मुताबिक बनाए गए स्कोप का इस्तेमाल किया जा रहा है, तो पक्का करें कि वह सेट हो.

बंडल की गई डिपेंडेंसी के लिए NPM वर्शन तय करना

डिफ़ॉल्ट रूप से, NPM v4 का इस्तेमाल, होस्ट किए गए टारगेट एनवायरमेंट में बंडल की गई डिपेंडेंसी इंस्टॉल करने के लिए किया जाता है. हालांकि, अगर आपको NPM का कोई दूसरा वर्शन इस्तेमाल करना है, तो NPM_VERSION में इसकी जानकारी दें एनवायरमेंट वैरिएबल. आप इस वैरिएबल को ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में सेट कर सकते हैं. ज़्यादा जानकारी के लिए, मेनिफ़ेस्ट फ़ाइल के एलिमेंट देखें.

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

बंडल किए गए डिपेंडेंसी का उदाहरण

होस्ट किए गए टारगेट के साथ बंडल की गई डिपेंडेंसी दिखाने वाले उदाहरण के लिए, देखें कस्टम मॉड्यूल का इस्तेमाल करके, होस्ट किए गए फ़ंक्शन के साथ Node.js ऐप्लिकेशन बनाने का तरीका.

स्वास्थ्य जांच का एंडपॉइंट जोड़ें

आपके पास अपने Node.js ऐप्लिकेशन के लिए, हेल्थ चेक एंडपॉइंट लागू करने का भी विकल्प है. Apigee इस एंडपॉइंट का इस्तेमाल तब करता है, जब आपका Node.js ऐप्लिकेशन यह जांच करता है कि ऐप्लिकेशन चालू है और कंटेनर में चल रहा है.

डिफ़ॉल्ट रूप से, Apigee को जो एंडपॉइंट चाहिए वह /health है. डिफ़ॉल्ट बटन को बदला जा सकता है एंडपॉइंट में, एंडपॉइंट के नाम को एनवायरमेंट वैरिएबल HOSTED_TARGET_HEALTH_CHECK_PATH. आपके पास इस वैरिएबल को ऐप्लिकेशन के मेनिफ़ेस्ट में सेट करने का विकल्प है फ़ाइल से लिए जाते हैं. ज़्यादा जानकारी के लिए, मेनिफ़ेस्ट फ़ाइल के एलिमेंट देखें.

हेल्थ चेक एंडपॉइंट लागू करने की ज़रूरत नहीं है. हालांकि, अगर प्रॉडक्ट की परफ़ॉर्मेंस की जांच करने के लिए, एंडपॉइंट के लिए, इन बातों का ध्यान रखें:

  • अगर Apigee के एंडपॉइंट पर हिट करने पर आपका ऐप्लिकेशन बंद हो जाता है, तो ऐप्लिकेशन उम्मीद के मुताबिक शुरू नहीं होगा.
  • अगर आपका एंडपॉइंट, 404 नहीं मिला एचटीटीपी स्टेटस दिखाता है, तो ठीक है. /health या HOSTED_TARGET_HEALTH_CHECK_PATH का इस्तेमाल सिर्फ़ यह देखने के लिए किया जाता है कि आपका ऐप्लिकेशन चल रहा है या नहीं. असल जवाब को अनदेखा कर दिया जाता है.

एनपीएम कैश मेमोरी की जगह बदलना

Node.js के नए वर्शन में एनपीएम के ऐसे वर्शन का इस्तेमाल किया जाता है जो एनपीएम की कैश मेमोरी के लिए /root/.npm का इस्तेमाल करता है. इस जगह पर होस्ट किए गए टारगेट में समस्या आती है. इसकी वजह यह है कि डायरेक्ट्री की जगह सिर्फ़ रीड-ओनली होती है ऐसा इसलिए, क्योंकि होस्ट किए गए टारगेट का रनटाइम, tmpfs फ़ाइल सिस्टम का इस्तेमाल करता है, जहां सिर्फ़ /tmp को लिखा जा सकता है. इस समस्या को हल करने के लिए, npm_config_cache एनवायरमेंट वैरिएबल को इसमें सेट किया जा सकता है आपके ऐप्लिकेशन का app.yamlफ़ाइल (मैनिफ़ेस्ट फ़ाइल) /tmp के अंदर की किसी डायरेक्ट्री में. उदाहरण के लिए:

  runtime: node
  application: my-express-app
  env:
    - name: npm_config_cache
      value: /tmp/.npm
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  

ऐप्लिकेशन को NPM के बिना चलाएं

डिफ़ॉल्ट रूप से, होस्ट किए गए टारगेट आपके होस्ट किए गए टारगेट ऐप्लिकेशन को चलाने के लिए npm start का इस्तेमाल करते हैं. लेकिन पिछले टास्क में हमने एनपीएम के इस्तेमाल में होने वाली एक समस्या के बारे में चर्चा की थी, क्योंकि नए वर्शन NPM कैश मेमोरी के लिए /root/.npm, जिसे लिखा नहीं जा सकता. इसकी वजह से, होस्ट किया गया टारगेट मिलता है शुरू नहीं किया जा सका. हालांकि, पिछला टास्क करने पर यह समस्या हल हो जाएगी, लेकिन दूसरा विकल्प यह होगा कि आपकी ऐप्लिकेशन को NPM के बिना चला सकता है. ऐसा करने के लिए, command और आपके ऐप्लिकेशन के args मान app.yamlफ़ाइल (मेनिफ़ेस्ट फ़ाइल) node index.js का इस्तेमाल करके अपने होस्ट किए गए टारगेट को सीधे चलाने के लिए. उदाहरण के लिए:

  runtime: node
  application: my-express-app
  command: node
  args:
    - index.js
  env:
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  
बेशक, आप अपनी पसंद के मुताबिक कोई भी निर्देश इस्तेमाल कर सकते हैं और node index.js उदाहरण के लिए.