হোস্ট করা টার্গেট টিউটোরিয়াল

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

নিম্নলিখিত টিউটোরিয়ালগুলিতে Apigee দ্বারা হোস্ট করা একটি নেটিভ Node.js রানটাইম এনভায়রনমেন্ট, হোস্টেড টার্গেটস ব্যবহার করে Edge-এ Node.js অ্যাপ্লিকেশন ডেপ্লয় করার পদ্ধতি ব্যাখ্যা করা হয়েছে।

টিউটোরিয়ালগুলোতে নিম্নলিখিত কাজগুলো ধাপে ধাপে দেখানো হয়েছে:

  • Edge UI ব্যবহার করে হোস্টেড টার্গেটগুলিতে একটি Node.js অ্যাপ ডেপ্লয় করা।
  • আপনার স্থানীয় ডেভেলপমেন্ট মেশিন থেকে হোস্টেড টার্গেটগুলিতে একটি Node.js অ্যাপ ডেপ্লয় করা।
  • প্রচলিত এজ নোড.জেএস টার্গেট ইমপ্লিমেন্টেশন সহ একটি বিদ্যমান প্রক্সিকে হোস্টেড টার্গেটে স্থানান্তর করা।

Edge UI ব্যবহার করে হোস্টেড টার্গেটগুলিতে একটি Node.js অ্যাপ ডেপ্লয় করুন

এই টিউটোরিয়ালে, আপনি Edge UI ব্যবহার করে Hosted Targets-এ একটি সাধারণ Node.js অ্যাপ ডেপ্লয় করবেন। টিউটোরিয়ালটি সম্পন্ন করার পর, আপনি একটি Hosted Targets প্রক্সির মৌলিক কাঠামো ও বিষয়বস্তু এবং ডেপ্লয়মেন্ট ও বিল্ড লগ ফাইলগুলো কীভাবে অ্যাক্সেস করতে হয়, তা বুঝতে পারবেন।

সাইন ইন করুন

  1. এখানে যান: apigee.com/edge
  2. সাইন ইন করতে আপনার Apigee লগইন তথ্য প্রবেশ করান।

একটি নতুন প্রক্সি তৈরি করুন

  1. সাইড নেভিগেশন মেনুতে, Develop > API Proxies নির্বাচন করুন।
  2. ক্লিক + প্রক্সি
  3. Create Proxy পেজে, Hosted Target নির্বাচন করুন।
  4. পরবর্তী ধাপে যান।
  5. প্রক্সি নেম ফিল্ডে hello-hosted-targets লিখুন।
  6. নিশ্চিত করুন যে 'Hello World' স্যাম্পলটি নির্বাচিত আছে।
  7. পরবর্তী ধাপে যান।
  8. সিকিউরিটি পেজে, অথরাইজেশনের জন্য পাস থ্রু (কোনোটিই নয়) নির্বাচন করুন।
  9. পরবর্তী ধাপে যান।
  10. পরবর্তী ধাপে যান।
  11. বিল্ড পেজে, টেস্ট এনভায়রনমেন্টটি সিলেক্ট করা আছে কিনা তা নিশ্চিত করুন। লক্ষ্য করুন যে প্রক্সি টাইপটি হলো হোস্টেড টার্গেটস
  12. বিল্ড এবং ডিপ্লয়-এ ক্লিক করুন। প্রক্সি ডিপ্লয়মেন্ট সম্পন্ন হতে কয়েক মুহূর্ত সময় লাগতে পারে।
  13. প্রক্সিটি সফলভাবে স্থাপন করার পর, পৃষ্ঠার নীচে থাকা 'View hello-hosted-targets proxy'-তে ক্লিক করুন।
  14. এপিআই প্রক্সিকে কল করুন। এটি করার সবচেয়ে সহজ উপায় হলো ট্রেস ট্যাবে গিয়ে একটি ট্রেস সেশন শুরু করা এবং সেন্ড-এ ক্লিক করা। আপনি নিম্নলিখিত প্রতিক্রিয়াসহ একটি 200 স্ট্যাটাস পাবেন:
    {"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}

প্রক্সি পরীক্ষা করুন

  1. Edge UI-তে, Develop ট্যাবে ক্লিক করুন।
  2. নেভিগেটরে, টার্গেট এন্ডপয়েন্টস-এর অধীনে ডিফল্ট নির্বাচন করুন।
  3. কোড এডিটরে লক্ষ্য করুন যে, <TargetEndpoint> এলিমেন্টের অধীনে একটি খালি <HostedTarget/> চাইল্ড এলিমেন্ট রয়েছে। এই খালি ট্যাগটি আবশ্যক। এটি Edge-কে জানিয়ে দেয় যে, প্রক্সির টার্গেট হলো এমন একটি অ্যাপ্লিকেশন যা Hosted Targets এনভায়রনমেন্টে ডেপ্লয় করা আছে।

  4. নেভিগেটরে, স্ক্রিপ্টস সেকশনের অধীনে থাকা বিষয়বস্তুগুলো লক্ষ্য করুন। Node.js অ্যাপ ফাইলগুলো হোস্টেড লেবেলের অধীনে তালিকাভুক্ত আছে।

  5. Edge UI-তে, Scripts- এর অধীনে hosted হিসেবে তালিকাভুক্ত ফাইলগুলো পরীক্ষা করুন:
    • app.yaml ফাইলে কনফিগারেশন সংক্রান্ত তথ্য থাকে। উদাহরণস্বরূপ, আপনি এনভায়রনমেন্ট ভেরিয়েবল যোগ করতে পারেন যা রানটাইমে Node.js অ্যাপ্লিকেশনের জন্য উপলব্ধ হবে। এই উদাহরণের জন্য আপনার এই ফাইলটি পরিবর্তন করার প্রয়োজন নেই।
    • index.js ফাইলটি হলো Node.js অ্যাপটির প্রধান ফাইল।
    • আপনার অ্যাপের যদি কোনো মডিউল নির্ভরতা থাকে, তবে সেগুলি অবশ্যই package.json- এ তালিকাভুক্ত করতে হবে।

লগ ফাইলগুলি দেখুন

অ্যাপ্লিকেশন লগ ফাইলগুলো বিল্ড ফেজে এবং রানটাইমে উদ্ভূত সমস্যা ডিবাগ করার জন্য সহায়ক হতে পারে।

  1. Edge UI-তে, Develop ট্যাবে ক্লিক করুন।
  2. বিল্ড লগ দেখতে, বিল্ড লগস-এ ক্লিক করুন।
  3. ডিপ্লয়মেন্ট লগ দেখতে, রানটাইম লগস-এ ক্লিক করুন।

    লগ ফাইল অ্যাক্সেস করাও দেখুন।

সারসংক্ষেপ

  • আপনি হোস্টেড টার্গেটস এনভায়রনমেন্টে একটি সাধারণ Node.js অ্যাপ্লিকেশন ডেপ্লয় করেছেন এবং এজ UI-তে এটি পরীক্ষা করেছেন।
  • আপনি জেনেছেন যে, একটি হোস্টেড টার্গেটস প্রক্সির জন্য টার্গেট এন্ডপয়েন্টে <HostedTarget/> নামে একটি বিশেষ খালি ট্যাগ প্রয়োজন হয়।
  • আপনি জেনেছেন যে Edge স্বয়ংক্রিয়ভাবে আপনার জন্য মডিউল নির্ভরতা লোড করে, এবং এই নির্ভরতাগুলো অবশ্যই package.json ফাইলে তালিকাভুক্ত থাকতে হবে।
  • আপনি বিল্ড এবং রানটাইম লগ ফাইলগুলো কীভাবে পরীক্ষা করতে হয়, তাও শিখেছেন।

আপনার সিস্টেম থেকে Edge-এ Node.js স্থাপন করুন

এই বিভাগে apigeetool ব্যবহার করে আপনার স্থানীয় সিস্টেম থেকে হোস্টেড টার্গেটসে একটি স্বতন্ত্র Node.js অ্যাপ্লিকেশন কীভাবে স্থাপন করতে হয় তা ব্যাখ্যা করা হয়েছে। apigeetool ইউটিলিটিটি Node.js অ্যাপটিকে একটি নতুন হোস্টেড টার্গেটস প্রক্সিতে বান্ডল করে এবং এটিকে Edge-এ স্থাপন করে।

apigeetool ইনস্টল করুন

ডেভেলপারদের জন্য Edge-এ প্রক্সি কোড ডেপ্লয় করার প্রস্তাবিত উপায় হলো apigeetool ব্যবহার করা। 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 নামে একটি ফাইল তৈরি করুন এবং এই কোডটি তাতে কপি করুন। লক্ষ্য করুন যে express মডিউলটি একটি ডিপেন্ডেন্সি হিসেবে তালিকাভুক্ত আছে।
  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 install` চালিয়ে দেয়। এটি `package.json` থেকে ডিপেন্ডেন্সিগুলো সংগ্রহ করে। শুধুমাত্র তখনই আপনাকে স্পষ্টভাবে `node_modules` ফোল্ডারটি দিতে হবে, যদি আপনার এমন কোনো কাস্টম মডিউল থাকে যা `npm`-এর মাধ্যমে পাওয়া যায় না।

প্রক্সি স্থাপন করা হচ্ছে

  1. টার্মিনালে, আপনার Node.js অ্যাপ্লিকেশনের রুট ডিরেক্টরিতে যান
  2. `deployhostedtarget` কমান্ডের সাহায্যে `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 UI-এর Trace টুলে প্রক্সিটি পরীক্ষা করতে পারেন। এখানে একটি 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 UI-তে প্রক্সি দেখা

সফলভাবে ডেপ্লয়মেন্ট সম্পন্ন হলে, আপনি Edge UI-এর API Proxy অংশে আপনার প্রক্সি দেখতে ও সম্পাদনা করতে পারবেন।

বিদ্যমান Node.js প্রক্সিকে Hosted Targets প্রক্সিতে স্থানান্তর করা

এই বিভাগে ব্যাখ্যা করা হয়েছে কিভাবে প্রচলিত Node.js টার্গেট ইমপ্লিমেন্টেশন ব্যবহারকারী একটি বিদ্যমান Edge API প্রক্সিকে ম্যানুয়ালি Hosted Targets-এ মাইগ্রেট করতে হয়। মাইগ্রেশনের ধাপগুলো সম্পন্ন করার পর প্রক্সিটি কিভাবে ডিপ্লয় করতে হয়, তাও এখানে ব্যাখ্যা করা হয়েছে।

মাইগ্রেশনের ধাপগুলো এপিআই প্রক্সি কাঠামো, পলিসি, ফ্লো এবং অন্যান্য কনফিগারেশন উপাদানগুলোকে অক্ষুণ্ণ রাখে। আপনি নিচে বর্ণিত চারটি ধাপে মাইগ্রেশনটি সম্পন্ন করতে পারেন এবং তারপর apigeetool ব্যবহার করে মাইগ্রেট করা প্রক্সিটি ডিপ্লয় করতে পারেন।

ধাপ ১: প্রক্সি ফাইলের কাঠামো সমন্বয় করুন

ফাইল কাঠামো ঠিক করার জন্য, এপিআই প্রক্সিটি আপনার লোকাল ফাইলসিস্টেমে থাকতে হবে। যদি প্রক্সিটি Edge-এ ডেপ্লয় করা থাকে, তবে কাজ চালিয়ে যাওয়ার আগে আপনাকে অবশ্যই এটি ডাউনলোড করতে হবে। প্রচলিত কনফিগারেশনে, Node.js কোডসহ একটি Edge প্রক্সি "বান্ডেল" এই ফাইল কাঠামো অনুসরণ করে। Node.js অ্যাপ্লিকেশন কোডটি resources/node ডিরেক্টরিতে রাখা হয়:

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


হোস্টেড টার্গেটের জন্য, আপনাকে আপনার Node.js অ্যাপের রুট ডিরেক্টরিটি resources/hosted নামের একটি ডিরেক্টরির অধীনে রাখতে হবে। সহজভাবে 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 প্রজেক্টের কাঠামো দেখায় যা Hosted Targets ডিপ্লয়মেন্টের জন্য প্রক্সিতে সঠিক অবস্থানে রয়েছে:

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

ধাপ ৩: নিশ্চিত করুন যে আপনার একটি package.json ফাইল আছে।

প্রচলিত Edge Node.js প্রক্সিতে package.json ফাইলটি ঐচ্ছিক ছিল। তবে, Hosted Targets-এর জন্য আপনাকে apiproxy/resources/hosted ডিরেক্টরিতে অবশ্যই একটি ফাইল সরবরাহ করতে হবে। এই ফাইলে আপনার অ্যাপের জন্য প্রয়োজনীয় যেকোনো ডিপেন্ডেন্সি উল্লেখ করতে ভুলবেন না।

ধাপ ৪: প্রক্সির টার্গেট এন্ডপয়েন্ট পরিবর্তন করুন

একটি প্রচলিত Node.js প্রক্সির জন্য টার্গেট এন্ডপয়েন্ট ফাইলে (সাধারণত /apiproxy/targets/default.xml ) <ScriptTarget> নামের একটি ট্যাগ থাকা আবশ্যক। হোস্টেড টার্গেটের ক্ষেত্রে, আপনাকে <HostedTarget/> নামের একটি খালি ট্যাগ যোগ করতে হবে। যদি ফাইলটিতে আগে থেকেই একটি 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. আপনার প্রক্সির রুট ডিরেক্টরিতে যান : /apiproxy
  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 UI-এর Trace টুলে প্রক্সিটি পরীক্ষা করতে পারেন। এখানে একটি cURL কমান্ডের উদাহরণ দেওয়া হলো:

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