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

শুধু মনে রাখবেন যে প্রক্সির অংশ হিসেবে থাকা যেকোনও 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 মধ্যে থাকতে হবে।
আপনি ScriptTarget-এ অতিরিক্ত প্যারামিটার সেট করতে পারবেন। বিস্তারিত জানতে, উন্নত ScriptTarget কনফিগারেশন দেখুন।
এই উদাহরণের উদ্দেশ্যে, এখানে মূল Node.js ফাইলের সোর্স কোড দেওয়া হল, এটিকে server.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 নামে পরিচিত, তাহলে API প্রক্সি যাতে
Node.js স্ক্রিপ্ট আছে, তার গঠনশৈলী নিম্নলিখিত প্রকারের:
/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 ইউটিলিটি ব্যবহার করে আপনার ফাইল সিস্টেমে সহজেই সব ডিপেন্ডেন্সি রিট্রিভ করতে পারবেন:
- আপনার Node.js অ্যাপ্লিকেশনের বেস ডিরেক্টরি থেকে, এগুলি রান করান:
$ npm install
অথবা
$ npm update
ডিপেন্ডেন্সি ইনস্টল করা হয়ে গেলে, আপনি Edge-এ প্রক্সি ডেপ্লয় করার জন্য প্রস্তুত।
Apigee Edge-এ Node.js অ্যাপ ডিপ্লয় করা
ডেপ্লয় করার আগে, আপনার Apigee Edge অ্যাকাউন্টের জন্য আপনার সংস্থার নাম, ইউজারনেম ও পাসওয়ার্ড জানতে হবে। ডেপ্লয়মেন্ট টুল কমান্ড সঠিকভাবে তৈরি করতে আপনার এই তথ্য প্রয়োজন।
এখানে কমান্ড দেওয়া হল। এটি ধরে নেয় (with the -d flag) যে আপনি নিজের প্রক্সির রুট ডিরেক্টরিতে আছেন। আপনার প্রক্সির নাম foo হলে, foo ডিরেক্টরি থেকে এই কমান্ড লিখুন:
$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .
$ apigeetool deployproxy -h
দ্রুত সারসংক্ষেপ পেতে:
- -n এই ফ্ল্যাগ আপনাকে অ্যাপ ডিপ্লয় করার সময় তৈরি হওয়া প্রক্সির নাম নির্দিষ্ট করতে দেয়। ম্যানেজমেন্ট UI-তে আপনি এই নামটি দেখতে পাবেন।
- -d API প্রক্সির মূল ডিরেক্টরি নির্দিষ্ট করে।
- -o, -e, -u এবং -p যথাক্রমে সংস্থার নাম, ডেপ্লয়মেন্ট এনভায়রনমেন্ট, ব্যবহারকারীর নাম ও পাসওয়ার্ড নির্দিষ্ট করে।
নতুন API প্রক্সি পরীক্ষা করা
আপনি এইমাত্র আগে থেকে থাকা API প্রক্সিতে একটি Node.js অ্যাপ যোগ করেছেন এবং Apigee Edge-এ প্রক্সিটি ডেপ্লয় করেছেন! এটি পরীক্ষা করে দেখতে, এই cURL কমান্ড রান করুন। আমরা ধরে নিই যে ডিফল্ট বেস পাথ (/) ব্যবহার করা হয়েছে (প্রক্সি এন্ডপয়েন্ট কনফিগারেশন ফাইলে বেস পাথ নির্দিষ্ট করা আছে)। org_name-এর পরিবর্তে আপনার সংস্থার নাম লিখতে ভুলবেন না। আপনার ডিভাইসে cURL ইনস্টল করা না থাকলে, আপনি ব্রাউজারে URL লিখতে পারেন।
$ curl http://org_name-test.apigee.net/
Hello, Node!
ম্যানেজমেন্ট UI-তে নতুন প্রক্সি দেখুন
আপনার Apigee Edge অ্যাকাউন্টে লগ-ইন করুন এবং API প্রক্সি পৃষ্ঠায় যান। আপনি সেখানে "hellonode" নামের একটি প্রক্সি তালিকাভুক্ত দেখতে পাবেন।

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

পরবর্তী ধাপ
Apigee Edge-এ রান করা Node.js অ্যাপ্লিকেশন ডিবাগ করা সংক্রান্ত তথ্যের জন্য, Node.js প্রক্সি ডিবাগ করা ও সমস্যা সমাধান করা