একটি বিদ্যমান API প্রক্সিতে Node.js যোগ করা হচ্ছে

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

ভূমিকা

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

আপনার উন্নয়ন পরিবেশ প্রস্তুত করা

এই আলোচনায়, আমরা ধরে নিচ্ছি যে আপনার লোকাল সিস্টেমে ইতিমধ্যেই একটি প্রক্সি ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করা আছে এবং আপনি এর সাথে একটি Node.js অ্যাপ্লিকেশন যুক্ত করতে চান।

একটি Node.js অ্যাপ অন্তর্ভুক্ত থাকা প্রক্সি অ্যাপ্লিকেশনের মৌলিক কাঠামোটি নিচের চিত্রে দেখানো প্যাটার্ন অনুসরণ করে, যেখানে একটি মূল /apiproxy ফোল্ডার এবং resources , targets , ও proxies-এর জন্য সাব-ফোল্ডার থাকে। apiproxy/resources/node ফোল্ডারে Node.js ফাইলগুলো অবশ্যই রাখতে হবে। অন্যান্য ফোল্ডারগুলোতে XML ফাইল থাকে, যা প্রক্সি ও টার্গেট এন্ডপয়েন্ট, প্রক্সি ফ্লো, কন্ডিশনাল ফ্লো ইত্যাদি নির্ধারণ করে। এপিআই প্রক্সি কাঠামোর আরও বিস্তারিত বিবরণের জন্য, এপিআই প্রক্সি কনফিগারেশন রেফারেন্স দেখুন।

শুধু মনে রাখবেন যে, প্রক্সির অংশ হিসেবে থাকা যেকোনো Node.js কোড অবশ্যই /apiproxy/resources/node ফোল্ডারে রাখতে হবে। ডিপ্লয় করার পর Edge সেখানেই কোডটি খুঁজে পাওয়ার আশা করে।

ScriptTarget ব্যবহার করে Node.js টার্গেট নির্দিষ্ট করুন।

প্রক্সিতে Node.js সংহত করার মূল চাবিকাঠি হলো টার্গেট এন্ডপয়েন্টের XML ফাইলে <ScriptTarget> এলিমেন্টটি নির্দিষ্ট করা। প্রক্সি ফাইল কাঠামোতে, এই XML ফাইলটি apiproxy/targets- এ অবস্থিত। ডিফল্টরূপে, ফাইলের নাম হলো default.xml।

প্রসঙ্গক্রমে, বিবেচনা করুন যে একটি টার্গেট এন্ডপয়েন্ট সাধারণত কোনো ধরনের ব্যাকএন্ড সার্ভিসকে নির্দেশ করে। এই ক্ষেত্রে, আমরা Apigee মক টার্গেট সার্ভিসটিকে হিট করছি। একটি টার্গেট এন্ডপয়েন্টের সংজ্ঞা দেখতে এইরকম:

<TargetEndpoint name="default">
    <Description/>
    <Flows/>
    <PreFlow name="PreFlow">
        <Request/>
        <Response/>
    </PreFlow>
    <HTTPTargetConnection>
        <URL>http://mocktarget.apigee.net/</URL>
    </HTTPTargetConnection>
    <PostFlow name="PostFlow">
        <Request/>
        <Response/>
    </PostFlow>
</TargetEndpoint>

<HTTPTargetConnection> এলিমেন্টটি ব্যাকএন্ড সার্ভিসের URL নির্দিষ্ট করে, যা হলো Apigee মক টার্গেট সার্ভিস।

তবে, Node.js-এর ক্ষেত্রে, Node.js অ্যাপ্লিকেশনটি নিজেই টার্গেট হয় । আপনি apiproxy/targets/default.xml ফাইলে <ScriptTarget> ব্যবহার করে এটি নির্দিষ্ট করে দেন।

ব্যাকএন্ড সার্ভিসের URL নির্দিষ্ট করার জন্য টার্গেটে <HTTPTargetConnection> এলিমেন্ট ব্যবহার করার পরিবর্তে, Node.js অ্যাপ্লিকেশনটিকে সরাসরি <ScriptTarget> এলিমেন্ট ব্যবহার করে রেফারেন্স করা হয়, যেমনটা এখানে দেখানো হয়েছে:

<TargetEndpoint name="default">
    <ScriptTarget>
         <ResourceURL>node://server.js</ResourceURL>
    </ScriptTarget>
    <PreFlow name="PreFlow">
        <Request/>
        <Response/>
    </PreFlow>
</TargetEndpoint>

<ResourceURL> প্যারামিটারটির শুরুতে অবশ্যই node:// থাকতে হবে এবং এর পরে মূল Node.js স্ক্রিপ্টটির নাম দিতে হবে। এবং, পূর্বে যেমন উল্লেখ করা হয়েছে, Node.js রিসোর্সসমূহ অবশ্যই API প্রক্সি স্কোপের অধীনে /apiproxy/resources/node এ থাকতে হবে।

আপনি স্ক্রিপ্টটার্গেটে অতিরিক্ত প্যারামিটার সেট করতে পারেন। বিস্তারিত জানতে, অ্যাডভান্সড স্ক্রিপ্টটার্গেট কনফিগারেশন দেখুন।

এই উদাহরণের জন্য, এখানে server.js নামের প্রধান Node.js ফাইলটির সোর্স কোড দেওয়া হলো। এটি একটি সাধারণ HTTP সার্ভার যা কোনো অনুরোধ পেলে "Hello World!" বার্তাটি ফেরত পাঠায়:

var http = require('http');
console.log('node.js application starting...');
var svr = http.createServer(function(req, resp) {
    resp.end('Hello, Node!');
});

svr.listen(process.env.PORT || 9000, function() {
    console.log('Node HTTP server is listening');
});

সংক্ষেপে বলতে গেলে, যদি ধরে নেওয়া হয় যে মূল Node.js অ্যাপ্লিকেশনটি server.js নামের একটি ফাইলে তৈরি করা হয়েছে, এবং এন্ডপয়েন্ট কনফিগারেশন দুটিরই নাম default.xml , তাহলে Node.js স্ক্রিপ্ট ধারণকারী API প্রক্সিটির গঠনটি হবে নিম্নরূপ:

/apiproxy/proxyName.xml
/apiproxy/proxies/default.xml
/apiproxy/targets/default.xml
/apiproxy/resources/node/server.js

অ্যাপ্লিকেশনটি স্থাপন করার জন্য প্রস্তুত হন।

বেশিরভাগ Node.js অ্যাপে ডিপেন্ডেন্সি ফাইল থাকে এবং বেস ডিরেক্টরিতে একটি package.json ফাইল অন্তর্ভুক্ত থাকে। এক্ষেত্রে, ডিপ্লয় করার আগে npm ইউটিলিটি চালিয়ে টপ-লেভেল node_modules ডিরেক্টরিটি ডিপেন্ডেন্সি দিয়ে পূর্ণ হয়েছে কিনা তা নিশ্চিত করাই সর্বোত্তম পন্থা। যদি node_modules- এ অন্তর্ভুক্ত নয় এমন কোনো রিমোট ডিপেন্ডেন্সি থাকে, তাহলে আপনার Node.js অ্যাপ্লিকেশনটি Edge-এ চলবে না।

আপনি npm ইউটিলিটি ব্যবহার করে সহজেই আপনার ফাইল সিস্টেমে সমস্ত ডিপেন্ডেন্সি পুনরুদ্ধার করতে পারেন:

  1. আপনার Node.js অ্যাপ্লিকেশনের মূল ডিরেক্টরি থেকে, নিম্নলিখিত কমান্ডটি চালান:
$ npm install 

অথবা

$ npm update

প্রয়োজনীয় উপাদানগুলো ইনস্টল হয়ে গেলে, আপনি Edge-এ আপনার প্রক্সি স্থাপন করার জন্য প্রস্তুত।

Node.js অ্যাপটি Apigee Edge-এ ডিপ্লয় করুন।

ডিপ্লয় করার আগে, আপনার Apigee Edge অ্যাকাউন্টের জন্য আপনার প্রতিষ্ঠানের নাম, ইউজার নেম এবং পাসওয়ার্ড জানতে হবে। ডিপ্লয়মেন্ট টুল কমান্ডটি সঠিকভাবে তৈরি করার জন্য আপনার এই তথ্যগুলো প্রয়োজন।

এই হলো কমান্ড। এটি ধরে নেয় (-d ফ্ল্যাগের সাহায্যে) যে আপনি আপনার প্রক্সির রুট ডিরেক্টরিতে আছেন। যদি আপনার প্রক্সির নাম foo হয়, তাহলে foo ডিরেক্টরি থেকে এই কমান্ডটি দিন:

$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .
প্রতিটি কমান্ড ফ্ল্যাগের অর্থ জানতে, এটি করুন:

$ apigeetool deployproxy -h

সংক্ষেপে বলতে গেলে:

  • -n এই ফ্ল্যাগটি আপনাকে সেই প্রক্সির নাম নির্দিষ্ট করতে দেয় যা অ্যাপটি ডেপ্লয় করার সময় তৈরি হবে। আপনি এই নামটি ম্যানেজমেন্ট UI-তে দেখতে পাবেন।
  • -d এপিআই প্রক্সির মূল ডিরেক্টরি নির্দিষ্ট করে।
  • -o , -e , -u , এবং -p যথাক্রমে প্রতিষ্ঠানের নাম, ডেপ্লয়মেন্ট এনভায়রনমেন্ট, ইউজার নেম এবং পাসওয়ার্ড নির্দিষ্ট করে।
ব্যাস, হয়ে গেল। আপনার Node.js অ্যাপটি একটি API প্রক্সিতে মোড়ানো হয়েছে, Edge-এ ডেপ্লয় করা হয়েছে এবং চালানোও হয়ে গেছে। এটি এখন রিকোয়েস্টের জন্য অপেক্ষা করছে এবং টেস্ট করার জন্য প্রস্তুত।

নতুন এপিআই প্রক্সি পরীক্ষা করুন

আপনি এইমাত্র একটি বিদ্যমান এপিআই প্রক্সিতে একটি Node.js অ্যাপ যুক্ত করেছেন এবং প্রক্সিটি Apigee Edge-এ ডেপ্লয় করেছেন! এটি পরীক্ষা করার জন্য, এই cURL কমান্ডটি চালান। আমরা ধরে নিচ্ছি যে ডিফল্ট বেস পাথ (/) ব্যবহৃত হয়েছে (বেস পাথটি প্রক্সি এন্ডপয়েন্ট কনফিগারেশন ফাইলে নির্দিষ্ট করা থাকে)। org_name- এর জায়গায় আপনার প্রতিষ্ঠানের নাম বসাতে ভুলবেন না। যদি আপনার cURL ইনস্টল করা না থাকে, তাহলে আপনি ব্রাউজারে URL-টি লিখতে পারেন।

$ curl http://org_name-test.apigee.net/
Hello, Node!

ম্যানেজমেন্ট UI-তে নতুন প্রক্সিটি দেখুন।

আপনার Apigee Edge অ্যাকাউন্টে লগ ইন করুন এবং API Proxies পৃষ্ঠায় যান। আপনি সেখানে "hellonode" নামের প্রক্সিটি তালিকাভুক্ত দেখতে পাবেন।

প্রক্সি সম্পর্কে বিস্তারিত দেখতে 'hellonode'-এ ক্লিক করুন। ডেভেলপ ভিউতে, আপনি আপনার আপলোড করা সোর্স কোড দেখতে, পলিসি যোগ করতে, ফ্লো সম্পাদনা করতে এবং আরও অনেক কিছু করতে পারবেন।

পরবর্তী পদক্ষেপ

Apigee Edge-এ চলমান Node.js অ্যাপ্লিকেশন ডিবাগ করার তথ্যের জন্য, “Debugging and troubleshooting Node.js proxies” দেখুন।

,

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

ভূমিকা

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

আপনার উন্নয়ন পরিবেশ প্রস্তুত করা

এই আলোচনায়, আমরা ধরে নিচ্ছি যে আপনার লোকাল সিস্টেমে ইতিমধ্যেই একটি প্রক্সি ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করা আছে এবং আপনি এর সাথে একটি Node.js অ্যাপ্লিকেশন যুক্ত করতে চান।

একটি Node.js অ্যাপ অন্তর্ভুক্ত থাকা প্রক্সি অ্যাপ্লিকেশনের মৌলিক কাঠামোটি নিচের চিত্রে দেখানো প্যাটার্ন অনুসরণ করে, যেখানে একটি মূল /apiproxy ফোল্ডার এবং resources , targets , ও proxies-এর জন্য সাব-ফোল্ডার থাকে। apiproxy/resources/node ফোল্ডারে Node.js ফাইলগুলো অবশ্যই রাখতে হবে। অন্যান্য ফোল্ডারগুলোতে XML ফাইল থাকে, যা প্রক্সি ও টার্গেট এন্ডপয়েন্ট, প্রক্সি ফ্লো, কন্ডিশনাল ফ্লো ইত্যাদি নির্ধারণ করে। এপিআই প্রক্সি কাঠামোর আরও বিস্তারিত বিবরণের জন্য, এপিআই প্রক্সি কনফিগারেশন রেফারেন্স দেখুন।

শুধু মনে রাখবেন যে, প্রক্সির অংশ হিসেবে থাকা যেকোনো Node.js কোড অবশ্যই /apiproxy/resources/node ফোল্ডারে রাখতে হবে। ডিপ্লয় করার পর Edge সেখানেই কোডটি খুঁজে পাওয়ার আশা করে।

ScriptTarget ব্যবহার করে Node.js টার্গেট নির্দিষ্ট করুন।

প্রক্সিতে Node.js সংহত করার মূল চাবিকাঠি হলো টার্গেট এন্ডপয়েন্টের XML ফাইলে <ScriptTarget> এলিমেন্টটি নির্দিষ্ট করা। প্রক্সি ফাইল কাঠামোতে, এই XML ফাইলটি apiproxy/targets- এ অবস্থিত। ডিফল্টরূপে, ফাইলের নাম হলো default.xml।

প্রসঙ্গক্রমে, বিবেচনা করুন যে একটি টার্গেট এন্ডপয়েন্ট সাধারণত কোনো ধরনের ব্যাকএন্ড সার্ভিসকে নির্দেশ করে। এই ক্ষেত্রে, আমরা Apigee মক টার্গেট সার্ভিসটিকে হিট করছি। একটি টার্গেট এন্ডপয়েন্টের সংজ্ঞা দেখতে এইরকম:

<TargetEndpoint name="default">
    <Description/>
    <Flows/>
    <PreFlow name="PreFlow">
        <Request/>
        <Response/>
    </PreFlow>
    <HTTPTargetConnection>
        <URL>http://mocktarget.apigee.net/</URL>
    </HTTPTargetConnection>
    <PostFlow name="PostFlow">
        <Request/>
        <Response/>
    </PostFlow>
</TargetEndpoint>

<HTTPTargetConnection> এলিমেন্টটি ব্যাকএন্ড সার্ভিসের URL নির্দিষ্ট করে, যা হলো Apigee মক টার্গেট সার্ভিস।

তবে, Node.js-এর ক্ষেত্রে, Node.js অ্যাপ্লিকেশনটি নিজেই টার্গেট হয় । আপনি apiproxy/targets/default.xml ফাইলে <ScriptTarget> ব্যবহার করে এটি নির্দিষ্ট করে দেন।

ব্যাকএন্ড সার্ভিসের URL নির্দিষ্ট করার জন্য টার্গেটে <HTTPTargetConnection> এলিমেন্ট ব্যবহার করার পরিবর্তে, Node.js অ্যাপ্লিকেশনটিকে সরাসরি <ScriptTarget> এলিমেন্ট ব্যবহার করে রেফারেন্স করা হয়, যেমনটা এখানে দেখানো হয়েছে:

<TargetEndpoint name="default">
    <ScriptTarget>
         <ResourceURL>node://server.js</ResourceURL>
    </ScriptTarget>
    <PreFlow name="PreFlow">
        <Request/>
        <Response/>
    </PreFlow>
</TargetEndpoint>

<ResourceURL> প্যারামিটারটির শুরুতে অবশ্যই node:// থাকতে হবে এবং এর পরে মূল Node.js স্ক্রিপ্টটির নাম দিতে হবে। এবং, পূর্বে যেমন উল্লেখ করা হয়েছে, Node.js রিসোর্সসমূহ অবশ্যই API প্রক্সি স্কোপের অধীনে /apiproxy/resources/node এ থাকতে হবে।

আপনি স্ক্রিপ্টটার্গেটে অতিরিক্ত প্যারামিটার সেট করতে পারেন। বিস্তারিত জানতে, অ্যাডভান্সড স্ক্রিপ্টটার্গেট কনফিগারেশন দেখুন।

এই উদাহরণের জন্য, এখানে server.js নামের প্রধান Node.js ফাইলটির সোর্স কোড দেওয়া হলো। এটি একটি সাধারণ HTTP সার্ভার যা কোনো অনুরোধ পেলে "Hello World!" বার্তাটি ফেরত পাঠায়:

var http = require('http');
console.log('node.js application starting...');
var svr = http.createServer(function(req, resp) {
    resp.end('Hello, Node!');
});

svr.listen(process.env.PORT || 9000, function() {
    console.log('Node HTTP server is listening');
});

সংক্ষেপে বলতে গেলে, যদি ধরে নেওয়া হয় যে মূল Node.js অ্যাপ্লিকেশনটি server.js নামের একটি ফাইলে তৈরি করা হয়েছে, এবং এন্ডপয়েন্ট কনফিগারেশন দুটিরই নাম default.xml , তাহলে Node.js স্ক্রিপ্ট ধারণকারী API প্রক্সিটির গঠনটি হবে নিম্নরূপ:

/apiproxy/proxyName.xml
/apiproxy/proxies/default.xml
/apiproxy/targets/default.xml
/apiproxy/resources/node/server.js

অ্যাপ্লিকেশনটি স্থাপন করার জন্য প্রস্তুত হন।

বেশিরভাগ Node.js অ্যাপে ডিপেন্ডেন্সি ফাইল থাকে এবং বেস ডিরেক্টরিতে একটি package.json ফাইল অন্তর্ভুক্ত থাকে। এক্ষেত্রে, ডিপ্লয় করার আগে npm ইউটিলিটি চালিয়ে টপ-লেভেল node_modules ডিরেক্টরিটি ডিপেন্ডেন্সি দিয়ে পূর্ণ হয়েছে কিনা তা নিশ্চিত করাই সর্বোত্তম পন্থা। যদি node_modules- এ অন্তর্ভুক্ত নয় এমন কোনো রিমোট ডিপেন্ডেন্সি থাকে, তাহলে আপনার Node.js অ্যাপ্লিকেশনটি Edge-এ চলবে না।

আপনি npm ইউটিলিটি ব্যবহার করে সহজেই আপনার ফাইল সিস্টেমে সমস্ত ডিপেন্ডেন্সি পুনরুদ্ধার করতে পারেন:

  1. আপনার Node.js অ্যাপ্লিকেশনের মূল ডিরেক্টরি থেকে, নিম্নলিখিত কমান্ডটি চালান:
$ npm install 

অথবা

$ npm update

প্রয়োজনীয় উপাদানগুলো ইনস্টল হয়ে গেলে, আপনি Edge-এ আপনার প্রক্সি স্থাপন করার জন্য প্রস্তুত।

Node.js অ্যাপটি Apigee Edge-এ ডিপ্লয় করুন।

ডিপ্লয় করার আগে, আপনার Apigee Edge অ্যাকাউন্টের জন্য আপনার প্রতিষ্ঠানের নাম, ইউজার নেম এবং পাসওয়ার্ড জানতে হবে। ডিপ্লয়মেন্ট টুল কমান্ডটি সঠিকভাবে তৈরি করার জন্য আপনার এই তথ্যগুলো প্রয়োজন।

এই হলো কমান্ড। এটি ধরে নেয় (-d ফ্ল্যাগের সাহায্যে) যে আপনি আপনার প্রক্সির রুট ডিরেক্টরিতে আছেন। যদি আপনার প্রক্সির নাম foo হয়, তাহলে foo ডিরেক্টরি থেকে এই কমান্ডটি দিন:

$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .
প্রতিটি কমান্ড ফ্ল্যাগের অর্থ জানতে, এটি করুন:

$ apigeetool deployproxy -h

সংক্ষেপে বলতে গেলে:

  • -n এই ফ্ল্যাগটি আপনাকে সেই প্রক্সির নাম নির্দিষ্ট করতে দেয় যা অ্যাপটি ডেপ্লয় করার সময় তৈরি হবে। আপনি এই নামটি ম্যানেজমেন্ট UI-তে দেখতে পাবেন।
  • -d এপিআই প্রক্সির মূল ডিরেক্টরি নির্দিষ্ট করে।
  • -o , -e , -u , এবং -p যথাক্রমে প্রতিষ্ঠানের নাম, ডেপ্লয়মেন্ট এনভায়রনমেন্ট, ইউজার নেম এবং পাসওয়ার্ড নির্দিষ্ট করে।
ব্যাস, হয়ে গেল। আপনার Node.js অ্যাপটি একটি API প্রক্সিতে মোড়ানো হয়েছে, Edge-এ ডেপ্লয় করা হয়েছে এবং চালানোও হয়ে গেছে। এটি এখন রিকোয়েস্টের জন্য অপেক্ষা করছে এবং টেস্ট করার জন্য প্রস্তুত।

নতুন এপিআই প্রক্সি পরীক্ষা করুন

আপনি এইমাত্র একটি বিদ্যমান এপিআই প্রক্সিতে একটি Node.js অ্যাপ যুক্ত করেছেন এবং প্রক্সিটি Apigee Edge-এ ডেপ্লয় করেছেন! এটি পরীক্ষা করার জন্য, এই cURL কমান্ডটি চালান। আমরা ধরে নিচ্ছি যে ডিফল্ট বেস পাথ (/) ব্যবহৃত হয়েছে (বেস পাথটি প্রক্সি এন্ডপয়েন্ট কনফিগারেশন ফাইলে নির্দিষ্ট করা থাকে)। org_name- এর জায়গায় আপনার প্রতিষ্ঠানের নাম বসাতে ভুলবেন না। যদি আপনার cURL ইনস্টল করা না থাকে, তাহলে আপনি ব্রাউজারে URL-টি লিখতে পারেন।

$ curl http://org_name-test.apigee.net/
Hello, Node!

ম্যানেজমেন্ট UI-তে নতুন প্রক্সিটি দেখুন।

আপনার Apigee Edge অ্যাকাউন্টে লগ ইন করুন এবং API Proxies পৃষ্ঠায় যান। আপনি সেখানে "hellonode" নামের প্রক্সিটি তালিকাভুক্ত দেখতে পাবেন।

প্রক্সি সম্পর্কে বিস্তারিত দেখতে 'hellonode'-এ ক্লিক করুন। ডেভেলপ ভিউতে, আপনি আপনার আপলোড করা সোর্স কোড দেখতে, পলিসি যোগ করতে, ফ্লো সম্পাদনা করতে এবং আরও অনেক কিছু করতে পারবেন।

পরবর্তী পদক্ষেপ

Apigee Edge-এ চলমান Node.js অ্যাপ্লিকেশন ডিবাগ করার তথ্যের জন্য, “Debugging and troubleshooting Node.js proxies” দেখুন।