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

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

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

इन ट्यूटोरियल की मदद से ये काम किए जाते हैं:

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

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

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

साइन इन करें

  1. इस लिंक पर जाएं: apigee.com/edge
  2. साइन इन करने के लिए, Apigee के लॉगिन क्रेडेंशियल डालें.

नया प्रॉक्सी बनाएं

  1. साइड नेविगेशन मेन्यू में, डेवलप करें > एपीआई प्रॉक्सी.
  2. + प्रॉक्सी पर क्लिक करें.
  3. 'प्रॉक्सी बनाएं' पेज में, होस्ट किया गया टारगेट चुनें.
  4. आगे बढ़ें पर क्लिक करें.
  5. प्रॉक्सी नेम फ़ील्ड में, hello-hosted-targets डालें.
  6. पक्का करें कि "Hey World" सैंपल चुना गया है.
  7. आगे बढ़ें पर क्लिक करें.
  8. सुरक्षा पेज पर, अनुमति देने के लिए पास थ्रू (कोई नहीं) को चुनें.
  9. आगे बढ़ें पर क्लिक करें.
  10. आगे बढ़ें पर क्लिक करें.
  11. बिल्ड पेज में, पक्का करें कि टेस्ट एनवायरमेंट को चुना गया हो. सूचना कि प्रॉक्सी टाइप होस्ट किए गए टारगेट है.
  12. बनाएं और डिप्लॉय करें पर क्लिक करें. प्रॉक्सी डिप्लॉयमेंट को पूरा होने में कुछ समय लग सकता है.
  13. प्रॉक्सी डिप्लॉय हो जाने के बाद, हैलो-होस्टेड-टारगेट प्रॉक्सी देखें पर क्लिक करें पर क्लिक करें.
  14. एपीआई प्रॉक्सी को कॉल करें. Trace पर जाकर, आसानी से ऐसा किया जा सकता है टैब, ट्रेस बनाना शुरू करें सेशन शुरू करें और भेजें पर क्लिक करें. आपको नीचे दिए गए विकल्पों के साथ 200 स्टेटस मिलेगा जवाब:
    {"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}

प्रॉक्सी की जांच करें

  1. Edge यूज़र इंटरफ़ेस (यूआई) में, डेवलप करें टैब पर क्लिक करें.
  2. Navigator में, टारगेट एंडपॉइंट में जाकर, default चुनें.
  3. कोड एडिटर में, देखें कि <HostedTarget/> चाइल्ड प्रॉपर्टी खाली है <TargetEndpoint> एलिमेंट के नीचे मौजूद एलिमेंट. यह खाली टैग है आवश्यक. यह Edge को बताता है कि प्रॉक्सी का टारगेट वह ऐप्लिकेशन है जिसे होस्ट किए गए Target एनवायरमेंट.

  4. Navigator में, स्क्रिप्ट सेक्शन के तहत कॉन्टेंट पर ध्यान दें. कॉन्टेंट बनाने Node.js ऐप्लिकेशन की फ़ाइलें, होस्ट किए गए लेबल में दिखती हैं.

  5. Edge के यूज़र इंटरफ़ेस (यूआई) में, स्क्रिप्ट में होस्ट किए गए सेक्शन में शामिल फ़ाइलों की जांच करें:
    • app.yaml फ़ाइल में कॉन्फ़िगरेशन की जानकारी है. उदाहरण के लिए, आपके पास एनवायरमेंट वैरिएबल जोड़ने का विकल्प होता है. ये वैरिएबल Node.js ऐप्लिकेशन के लिए यहां उपलब्ध होंगे रनटाइम. आपको इस उदाहरण के लिए, इस फ़ाइल में बदलाव करने की ज़रूरत नहीं है.
    • index.js फ़ाइल, Node.js ऐप्लिकेशन की मुख्य फ़ाइल होती है.
    • अगर आपके ऐप्लिकेशन में कोई मॉड्यूल है निर्भरता के लिए, उन्हें package.json में शामिल किया जाना चाहिए.

लॉग फ़ाइलें देखें

ऐप्लिकेशन की लॉग फ़ाइलें, बिल्ड चरण के दौरान आने वाली समस्याओं को डीबग करने में मददगार साबित हो सकती हैं और रनटाइम पर भी ऐक्सेस किया जा सकता है.

  1. Edge यूज़र इंटरफ़ेस (यूआई) में, डेवलप करें टैब पर क्लिक करें.
  2. बिल्ड लॉग देखने के लिए, लॉग बनाएं पर क्लिक करें.
  3. डिप्लॉयमेंट लॉग देखने के लिए, रनटाइम लॉग पर क्लिक करें.

    यह भी देखें लॉग फ़ाइलें ऐक्सेस करना.

खास जानकारी

  • आपने होस्ट किए गए टारगेट एनवायरमेंट में एक सामान्य Node.js ऐप्लिकेशन को डिप्लॉय किया है और टेस्ट किया है इसे Edge यूज़र इंटरफ़ेस (यूआई) में देखें.
  • आपको पता चला है कि होस्ट किए गए टारगेट प्रॉक्सी के लिए टारगेट में एक खास खाली टैग की ज़रूरत होती है <HostedTarget/> नाम का एंडपॉइंट.
  • आपको पता चला है कि Edge आपके लिए मॉड्यूल डिपेंडेंसी और डिपेंडेंसी को अपने-आप लोड करता है package.json फ़ाइल में शामिल होना चाहिए.
  • आपने बिल्ड और रनटाइम लॉग फ़ाइलों को देखने का तरीका भी सीखा है.

Node.js को अपने सिस्टम से Edge पर डिप्लॉय करें

इस सेक्शन में बताया गया है कि आप अपने लोकल सिस्टम से स्टैंडअलोन Node.js ऐप्लिकेशन को apigeetool का इस्तेमाल करके होस्ट किए गए टारगेट. apigeetool यूटिलिटी Node.js ऐप्लिकेशन को होस्ट किए गए नए टारगेट प्रॉक्सी में बंडल करती है और उसे Edge पर डिप्लॉय करती है.

apigeetool इंस्टॉल करें

apigeetool का इस्तेमाल करना डेवलपर के लिए प्रॉक्सी डिप्लॉय करने का सुझाया गया तरीका है कोड को Edge पर सेट कर सकते हैं. apigeetool इंस्टॉल करने के लिए, यहां दिए गए NPM निर्देश को चलाएं:

npm install -g apigeetool

Node.js ऐप्लिकेशन बनाना

चीज़ों को आसान बनाने के लिए, आपको एक आसान Node.js ऐप्लिकेशन का कोड दिया गया है.

  1. Node.js ऐप्लिकेशन के लिए डायरेक्ट्री बनाएं. डायरेक्ट्री को node-hosted-express को कॉल करें.
  2. cd को नई डायरेक्ट्री में जोड़ें.
  3. index.js नाम की फ़ाइल बनाएं और इस कोड को उसमें कॉपी करें.
  4. var express = require('express')
    var app = express()
    
    app.get('/', function(req, res) {
        res.json({
            hello: "Hello World!"
        })
    })
    
    app.get('/hello/:name', function(req, res) {
        var name = req.params.name
        res.json({
            hello: "hello " + name
        })
    })
    
    var server = app.listen(process.env.PORT || 9000, function() {
        console.log('Listening on port %d', server.address().port)
    })
    
  5. package.json नाम की फ़ाइल बनाएं और इस कोड को उसमें कॉपी करें. ध्यान दें कि एक्सप्रेस मॉड्यूल को एक डिपेंडेंसी के तौर पर लिस्ट किया गया है.
  6. {
        "name": "hello-world",
        "version": "1.0.0",
        "main": "index.js",
        "scripts": {
            "start": "node index.js --use_strict"
        },
        "author": "",
        "license": "",
        "dependencies": {
            "express": "^4.16.0"
        }
    }
    
  7. app.yaml नाम की फ़ाइल बनाएं और इस कोड को उसमें कॉपी करें:
  8. runtime: node
    runtimeVersion: 8
    application: my-express-app
    env:
      - name: NODE_ENV
        value: production
      - name: LOG_LEVEL
        value: 3
    
  9. पक्का करें कि आपकी डायरेक्ट्री इस तरह दिखती है:
    ls
    app.yaml index.js package.json
    

ऐप्लिकेशन कोड के लिए ज़रूरी डायरेक्ट्री के स्ट्रक्चर की समीक्षा करें

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

  • app.yaml मेनिफ़ेस्ट फ़ाइल ज़रूरी है और रूट में मौजूद होनी चाहिए में आपके ऐप्लिकेशन की डायरेक्ट्री मौजूद होनी चाहिए. इस फ़ाइल के बारे में ज़्यादा जानने के लिए, मेनिफ़ेस्ट फ़ाइल देखें.
  • package.json फ़ाइल ज़रूरी है. इसमें ऐसी सभी डिपेंडेंसी शामिल होनी चाहिए जो के लिए ज़रूरी है.
  • node_modules फ़ोल्डर ज़रूरी नहीं है. जब Node.js ऐप्लिकेशन डिप्लॉय किया जाता है, तो Edge आपके लिए npm इंस्टॉल करता है. यह हो जाता है package.json से जुड़ी डिपेंडेंसी. सिर्फ़ इतनी जल्दी आपको साफ़ तौर पर जानकारी देनी होगी अगर आपके पास ऐसे कस्टम मॉड्यूल हैं जो उपलब्ध नहीं हैं, तो node_modules उपलब्ध कराएं npm तक.

प्रॉक्सी को डिप्लॉय करना

  1. टर्मिनल में, cd को अपने Node.js ऐप्लिकेशन की रूट डायरेक्ट्री में जोड़ें.
  2. DeployHosttarget कमांड की मदद से, apigeetool लागू करें:
  3. apigeetool deployhostedtarget -o org -e env -n proxy-name -b /node-hosted-express -u username

    जहां -n वह नाम है जिसे आप नए प्रॉक्सी को देना चाहते हैं. यह यूनीक होना चाहिए शामिल किया जा सकता है. नाम में आपको जिन वर्णों का उपयोग करने की अनुमति है, उन तक सीमित है निम्न: a-z0-9._\-$%

    उदाहरण के लिए:

    apigeetool deployhostedtarget -o myorg -e test -n node-hosted-express -b /node-hosted-express -u jdoe@apigee.com

    apigeetool का इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, देखें https://github.com/apigee/apigeetool-node.

प्रॉक्सी की जांच करना

प्रॉक्सी की जांच, cURL निर्देश की मदद से, Postman जैसे किसी REST क्लाइंट के साथ या Edge यूज़र इंटरफ़ेस (यूआई) में की जा सकती है का इस्तेमाल किया है. यहां cURL कमांड का उदाहरण दिया गया है.

curl http://myorg-test.apigee.net/node-hosted-express
     {"date":1506992197427,"msg":"hello-world"}

बिल्ड लॉग पाना

बिल्ड लॉग आपको Node.js ऐप्लिकेशन को डिप्लॉय और बनाने से जुड़ा आउटपुट दिखाता है. लॉग फ़ाइलें भी देखें.

apigeetool getlogs -u username -o org -e env --hosted-build -n proxy-name

उदाहरण के लिए:

apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-build -n node-hosted-express

रनटाइम लॉग पाना

रनटाइम लॉग में, चल रहे ऐप्लिकेशन का आउटपुट दिखता है. रनटाइम लॉग, एनवायरमेंट के दायरे में आते हैं और वर्तमान में नियोजित प्रॉक्सी संशोधन के लिए लॉग दिखाएं. लॉग फ़ाइलें भी देखें.

apigeetool getlogs -u username -o org -e env --hosted-runtime -n proxy-name

उदाहरण के लिए:

apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-runtime -n node-hosted-express

Edge यूज़र इंटरफ़ेस (यूआई) में प्रॉक्सी देखना

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

मौजूदा Node.js प्रॉक्सी को होस्ट किए गए टारगेट प्रॉक्सी पर माइग्रेट करना

इस सेक्शन में बताया गया है कि मैन्युअल तरीके से मौजूदा Edge API प्रॉक्सी को कैसे माइग्रेट किया जाता है. ट्रेडिशनल Node.js टारगेट को होस्ट किए गए टारगेट पर लागू करना. इसमें यह भी बताया गया है कि इसके बाद प्रॉक्सी को कैसे डिप्लॉय किया जाए आपने माइग्रेशन के चरण पूरे कर लिए हैं.

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

पहला चरण: प्रॉक्सी फ़ाइल के स्ट्रक्चर में बदलाव करना

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

apiproxy/
    policies/
    proxies/
    targets/
    resources/
      node/
        Your application code


होस्ट किए गए टारगेट के लिए, आपको अपने Node.js ऐप्लिकेशन की रूट डायरेक्ट्री को resources/hosted नाम की डायरेक्ट्री. बस इस नाम की एक नई डायरेक्ट्री बनाएँ संसाधन/होस्ट किए गए और resources/node के कॉन्टेंट को ट्रांसफ़र करना भी कर सकते हैं. इसके बाद, resources/node डायरेक्ट्री को मिटाया जा सकता है.

apiproxy/
     policies/
     proxies/
     targets/
     resources/
       hosted/
         Your application code

दूसरा चरण: मेनिफ़ेस्ट फ़ाइल जोड़ना

app.yaml नाम की एक मेनिफ़ेस्ट फ़ाइल बनाएं और उसे apiproxy/resources/hosted डायरेक्ट्री.

यहां app.yaml फ़ाइल का एक उदाहरण दिया गया है. इससे पता चलता है कि रनटाइम Node.js (ज़रूरी है). यह एक्ज़ीक्यूशन एनवायरमेंट में एक एनवायरमेंट वैरिएबल भी बनाता है (ऐसा वैरिएबल जिसे Node.js ऐप्लिकेशन से ऐक्सेस किया जा सकता है). एनवायरमेंट वैरिएबल ज़रूरी नहीं है इसे यहां सिर्फ़ उदाहरण के तौर पर दिखाया गया है. ज़्यादा जानकारी और उदाहरणों के लिए, मेनिफ़ेस्ट फ़ाइल देखें.

runtime: node
  env:
    - name: NODE_ENV
      value: production


नीचे दिए गए उदाहरण में एक Node.js प्रोजेक्ट स्ट्रक्चर दिखाया गया है, जो होस्ट किए गए टारगेट के डिप्लॉयमेंट के लिए प्रॉक्सी:

apiproxy/
   resources/
      hosted/
        index.js
        node_modules/
        app.yaml
        package.json

तीसरा चरण: पक्का करना कि आपके पास Package.json फ़ाइल हो

परंपरागत Edge Node.js प्रॉक्सी में, package.json ज़रूरी नहीं. हालांकि, होस्ट किए गए टारगेट के लिए, आपको apiproxy/resources/hosted डायरेक्ट्री में एक टैग डालना होगा. पक्का करें कि का इस्तेमाल करें.

चौथा चरण: प्रॉक्सी के टारगेट एंडपॉइंट में बदलाव करें

परंपरागत Node.js प्रॉक्सी के लिए <ScriptTarget> नाम का टैग होना ज़रूरी है टारगेट एंडपॉइंट फ़ाइल में मौजूद होना चाहिए (आम तौर पर /apiproxy/targets/default.xml). होस्ट किए गए टारगेट के लिए, आपको &lt;HostedTarget/&gt; नाम का एक खाली टैग जोड़ना होगा. अगर फ़ाइल में ScriptTarget टैग है, तो उसे हटाया जा सकता है. उदाहरण के लिए:

    <?xml version="1.0" encoding="UTF-8"?>
    <TargetEndpoint name="default">
       <Description />
       <FaultRules />
       <PreFlow name="PreFlow">
          <Request />
          <Response />
       </PreFlow>
       <PostFlow name="PostFlow">
          <Request />
          <Response />
       </PostFlow>
       <Flows />
       <HostedTarget />
    </TargetEndpoint>
    

प्रॉक्सी को डिप्लॉय करना

अब apigeetool deployproxy निर्देश का इस्तेमाल करके, प्रॉक्सी को डिप्लॉय किया जा सकता है.

  1. cd को अपने प्रॉक्सी की रूट डायरेक्ट्री में जोड़ें: /apiप्रॉक्सी
  2. प्रॉक्सी को डिप्लॉय करने के लिए, इस निर्देश का इस्तेमाल करें:
  3. apigeetool deployproxy -u username -o org -e env -n proxy-name -d .

    उदाहरण के लिए:

    apigeetool deployproxy -u jdoe -o docs -e test -n hello-world -d .

apigeetool का इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, इन्हें देखें: https://github.com/apigee/apigeetool-node/blob/master/README.md.

प्रॉक्सी की जांच करना

प्रॉक्सी की जांच, cURL निर्देश की मदद से, Postman जैसे किसी REST क्लाइंट के साथ या Edge यूज़र इंटरफ़ेस (यूआई) में की जा सकती है का इस्तेमाल किया है. यहां cURL कमांड का उदाहरण दिया गया है:

curl http://myorg-test.apigee.net/hello-world
Hello,World!