Node.js মডিউলগুলির জন্য এজ সমর্থন বোঝা

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান
তথ্য

Apigee Edge-এ Node.js-এর কোন সংস্করণ সমর্থিত?

এজ বর্তমানে Node.js 0.10.32 সমর্থন করে।

কোন স্ট্যান্ডার্ড Node.js মডিউল এজ-এ সমর্থিত?

এজ-এ কোন স্ট্যান্ডার্ড Node.js মডিউল অন্তর্ভুক্ত করা হয়েছে তা নির্ধারণ করতে নিম্নলিখিত টেবিলটি ব্যবহার করুন। কিছু ক্ষেত্রে, অন্তর্ভুক্ত মডিউলগুলি শুধুমাত্র আংশিকভাবে সমর্থিত। এগুলি হল মডিউল যা Node.js-এ অন্তর্নির্মিত।

মডিউল স্ট্যাটাস নোট
assert সমর্থিত
buffer সমর্থিত
child_process সীমাবদ্ধ একটি উপ-প্রক্রিয়া তৈরি করার চেষ্টা করা হলে একটি ব্যতিক্রম নিক্ষেপ করা হবে। যাইহোক, "ফর্ক" সাব-স্ক্রিপ্ট তৈরির জন্য সমর্থিত।
cluster অক্ষম পদ্ধতি cluster.isMaster সর্বদা সত্য প্রদান করে, এবং অন্যান্য পদ্ধতি প্রয়োগ করা হয় না। প্রতিটি Node.js স্ক্রিপ্টের একটি কপি প্রতিটি এজ মেসেজ প্রসেসরে স্থাপন করা হয়।
crypto সমর্থিত
dns সমর্থিত
domain সমর্থিত
dgram সীমাবদ্ধ আমাদের নেটওয়ার্ক আর্কিটেকচারের কারণে Apigee পরিবেশে Node.js অ্যাপ্লিকেশনগুলি UDP-এর মাধ্যমে ইন্টারনেটে পরিষেবাগুলি অ্যাক্সেস করতে সক্ষম হবে না।
events সমর্থিত
fs সীমাবদ্ধ ফাইলসিস্টেম অ্যাক্সেস সেই ডিরেক্টরিতে সীমাবদ্ধ যেখানে স্ক্রিপ্টটি চালু করা হয়েছিল: /resources/node ডিরেক্টরি। Node.js স্ক্রিপ্টগুলি এই ডিরেক্টরির মধ্যে ফাইলগুলি পড়তে এবং লিখতে পারে, উদাহরণস্বরূপ একটি অস্থায়ী স্ক্র্যাচ এলাকা হিসাবে, তবে ফাইলগুলি কতক্ষণ টিকে থাকবে তার কোনও গ্যারান্টি নেই৷
http সমর্থিত আগত অনুরোধের জন্য ভার্চুয়াল হোস্ট এবং পথ API প্রক্সিতে নির্দিষ্ট করা হয়, HTTP মডিউল দ্বারা নয়। আরও তথ্যের জন্য " http এবং https মডিউলগুলির জন্য সমর্থন বোঝা " দেখুন।
https সমর্থিত একটি "https" সার্ভার তৈরি করা একটি "http" সার্ভারের সাথে অভিন্ন আচরণ করে। আরও তথ্যের জন্য " http এবং https মডিউলগুলির জন্য সমর্থন বোঝা " দেখুন।
module সমর্থিত
net সীমাবদ্ধ ইনকামিং TCP সংযোগের জন্য শোনার প্রচেষ্টা একটি ব্যতিক্রম তৈরি করবে।
path সমর্থিত
module সমর্থিত
process আংশিক সমর্থন ইউজার আইডি, গ্রুপ মেম্বারশিপ এবং ওয়ার্কিং ডাইরেক্টরি ম্যানিপুলেট করার কার্যকারিতা সমর্থিত নয়।
punycode সমর্থিত
querystring সমর্থিত
readline অক্ষম Apigee Edge এ চলমান স্ক্রিপ্টগুলির জন্য কোন মানক ইনপুট নেই।
repl অক্ষম Apigee Edge এ চলমান স্ক্রিপ্টগুলির জন্য কোন মানক ইনপুট নেই।
module অন্তর্ভুক্ত
STDIO সমর্থিত

স্ট্যান্ডার্ড আউটপুট এবং ত্রুটি Apigee এজ অবকাঠামোর মধ্যে একটি লগ ফাইলে রাউট করা হয়। আপনি আপনার API প্রক্সির জন্য Node.js লগ ইন বোতাম এবং Apigee এজ ম্যানেজমেন্ট UI এ ক্লিক করে এই লগগুলি দেখতে পারেন।

Apigee Edge এ চলমান স্ক্রিপ্টগুলির জন্য কোন মানক ইনপুট নেই। যাইহোক, আপনি TargetEndpoint এর ScriptTarget উপাদান ব্যবহার করে আর্গুমেন্ট পাস করতে পারেন। আরও তথ্যের জন্য Advanced ScriptTarget কনফিগারেশন দেখুন।

stream সমর্থিত
string_decoder সমর্থিত
timers অন্তর্ভুক্ত
tls সমর্থিত ট্রান্সপোর্ট লেয়ার সিকিউরিটি (TLS) প্যারামিটারগুলি মূলত একইভাবে কাজ করে যেভাবে তারা নিয়মিত Node.js এ কাজ করে। বিস্তারিত জানার জন্য Apigee Edge-এ TLS (SSL) Node.js মডিউল ব্যবহার করা দেখুন।
tty অক্ষম Apigee Edge এ চলমান স্ক্রিপ্টগুলির জন্য কোন মানক ইনপুট নেই।
url সমর্থিত
util সমর্থিত
vm সমর্থিত
zlib সমর্থিত

অতিরিক্ত সমর্থিত মডিউল

এই বিভাগে অতিরিক্ত মডিউলগুলি তালিকাভুক্ত করা হয়েছে যা স্ট্যান্ডার্ড Node.js-এ সমর্থিত নয়, কিন্তু Apigee এজ-এ চলমান Trireme এবং Trireme দ্বারা সমর্থিত। Trireme হল ওপেন সোর্স Node.js কন্টেইনার যা Apigee Edge এ চলে। এটি জাভা ভার্চুয়াল মেশিন (JVM) এর ভিতরে Node.js স্ক্রিপ্ট চালানোর জন্য ডিজাইন করা হয়েছে। এই সমস্ত মডিউল NPM-এ উপলব্ধ।

মডিউল বর্ণনা
apigee-অ্যাক্সেস Apigee Edge প্ল্যাটফর্মে চলমান Node.js অ্যাপ্লিকেশনগুলিকে Apigee-নির্দিষ্ট কার্যকারিতা অ্যাক্সেস করার একটি উপায়ের অনুমতি দেয়৷ আপনি এই মডিউলটি ব্যবহার করতে পারেন: ফ্লো ভেরিয়েবল অ্যাক্সেস এবং সংশোধন করতে, সুরক্ষিত স্টোর থেকে ডেটা পুনরুদ্ধার করতে এবং এজ ক্যাশে, কোটা এবং OAuth পরিষেবাগুলি ব্যবহার করতে পারেন৷ এপিজি-অ্যাক্সেস মডিউল ব্যবহার করাও দেখুন।
trireme- সমর্থন Node.js অ্যাপ্লিকেশনগুলিকে Trireme-এর জন্য নির্দিষ্ট বৈশিষ্ট্যগুলির সুবিধা নিতে দেয়৷ বর্তমানে শুধুমাত্র একটি বৈশিষ্ট্য সমর্থিত -- জাভাতে নির্মিত Node.js মডিউল লোড করা। দ্রষ্টব্য: লোডজার্স এজ ক্লাউডে সমর্থিত নয়।
trireme-xslt XLST প্রক্রিয়াকরণের একটি বিমূর্ততা উপস্থাপন করে। এটি বিশেষভাবে Trireme প্ল্যাটফর্মের জন্য ডিজাইন করা হয়েছে যাতে জাভাতে Node.js অ্যাপ্লিকেশন চালানো হয় তখন XSLT-এর দক্ষ প্রক্রিয়াকরণের অনুমতি দেয়।
trireme-jdbc Node.js থেকে JDBC-তে অ্যাক্সেস প্রদান করে। দ্রষ্টব্য: এজ ক্লাউডে অসমর্থিত। এজ প্রাইভেট ক্লাউডের জন্য, আপনি ক্লাস পাথে JDPC JAR ফাইল রাখতে পারেন এবং এই মডিউলটি ব্যবহার করতে পারেন।

সাধারণত ব্যবহৃত Node.js মডিউলগুলির জন্য সমর্থন

Node.js স্ক্রিপ্টে সীমাবদ্ধতা

উল্লেখ্য, তবে, এজ Node.js স্ক্রিপ্টগুলিতে কিছু বিধিনিষেধ আরোপ করে, যেমন নিম্নলিখিত:

  • Apigee Edge পরিবেশে Node.js অ্যাপ্লিকেশনগুলি এজ নেটওয়ার্ক আর্কিটেকচারের কারণে UDP এর মাধ্যমে ইন্টারনেটে পরিষেবাগুলি অ্যাক্সেস করতে পারে না।
  • ফাইলসিস্টেম অ্যাক্সেস সেই ডিরেক্টরিতে সীমাবদ্ধ যেখানে Node.js স্ক্রিপ্ট চালু করা হয়েছিল: /resources/node ডিরেক্টরি। Node.js স্ক্রিপ্টগুলি এই ডিরেক্টরির মধ্যে ফাইলগুলি পড়তে এবং লিখতে পারে, উদাহরণস্বরূপ একটি অস্থায়ী স্ক্র্যাচ এলাকা হিসাবে, তবে ফাইলগুলি কতক্ষণ টিকে থাকবে তার কোনও গ্যারান্টি নেই৷
  • ইনকামিং TCP সংযোগের জন্য শোনার প্রচেষ্টা একটি ব্যতিক্রম তৈরি করে।
  • ইউজার আইডি, গ্রুপ মেম্বারশিপ এবং ওয়ার্কিং ডাইরেক্টরি ম্যানিপুলেট করার কার্যকারিতা সমর্থিত নয়।
  • স্ট্যান্ডার্ড ইনপুটের জন্য, আপনি TargetEndpoint এর ScriptTarget উপাদান ব্যবহার করে আর্গুমেন্ট পাস করার মধ্যে সীমাবদ্ধ। আরও তথ্যের জন্য Advanced ScriptTarget কনফিগারেশন দেখুন।
  • স্ট্যান্ডার্ড আউটপুটের জন্য, আপনি আপনার প্রক্সির জন্য এজ ম্যানেজমেন্ট UI-তে Node.js লগ বোতাম ব্যবহার করতে সীমাবদ্ধ। আপনি "apigeetool getlogs" কমান্ডটিও ব্যবহার করতে পারেন। আরও তথ্যের জন্য, একটি স্বতন্ত্র Node.js অ্যাপ স্থাপন করা দেখুন।
  • নেটিভ কোডের উপর নির্ভরশীল মডিউল সমর্থিত নয়।
  • যে মডিউলগুলি EcmaScript 6 বৈশিষ্ট্যের উপর নির্ভর করে, যেমন প্রতিশ্রুতি এবং জেনারেটর, সমর্থিত নয়।
  • Node.js রানটাইম ফ্ল্যাগ যেমন "হারমনি-প্রক্সি" সমর্থিত নয়।

ব্যক্তিগত ক্লাউডের জন্য প্রান্তে আইপি সংযোগ সীমাবদ্ধতা সেট করা হচ্ছে

প্রাইভেট ক্লাউডের জন্য এজ Node.js কোডকে “10”, “192.168” এবং লোকালহোস্ট দিয়ে শুরু হওয়া আইপি অ্যাড্রেস অ্যাক্সেস করা থেকে সীমাবদ্ধ করতে পারে। আপনি যদি এই আইপি অ্যাড্রেসগুলি অ্যাক্সেস করার চেষ্টা করেন, আপনি ফর্মটিতে একটি ত্রুটি দেখতে পাবেন:

{ [Error: connect EINVAL] message: 'connect EINVAL', code: 'EINVAL', errno: 'EINVAL', syscall: 'connect' }

আপনি প্রতিটি বার্তা প্রসেসরের জন্য message-processors.properties ফাইলে conf_nodejs_connect.ranges.denied সম্পত্তি সেট করে এই সীমাবদ্ধতাগুলি পরিবর্তন করতে পারেন। ডিফল্টরূপে, এই সম্পত্তির মান আছে:

  • এজ 4.17.05 এবং তার আগের : conf_nodejs_connect.ranges.denied=10.0.0.0/8,192.168.0.0/16,127.0.0.1/32
  • এজ 4.17.09 এবং পরবর্তী : conf_nodejs_connect.ranges.denied= (অর্থাৎ কোন সীমাবদ্ধতা নেই)

এই সম্পত্তি সেট করতে:

  1. একটি এডিটরে message-processor.properties ফাইলটি খুলুন। ফাইলটি বিদ্যমান না থাকলে, এটি তৈরি করুন:
    > vi /<inst_root>/apigee/customer/application/message-processor.properties
  2. পছন্দ অনুযায়ী সম্পত্তি সেট করুন. উদাহরণস্বরূপ, শুধুমাত্র স্থানীয় হোস্টে অ্যাক্সেস অস্বীকার করতে:
    conf_nodejs_connect.ranges.denied=127.0.0.1/32
  3. আপনার পরিবর্তন সংরক্ষণ করুন.
  4. নিশ্চিত করুন যে বৈশিষ্ট্য ফাইলটি 'apigee' ব্যবহারকারীর মালিকানাধীন:
    > chown apigee:apigee /<inst_root>/apigee/customer/application/message-processor.properties
  5. বার্তা প্রসেসর পুনরায় চালু করুন:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-message-processor রিস্টার্ট

http এবং https মডিউলগুলির জন্য সমর্থন বোঝা

Apigee Edge-এ চলমান সমস্ত Node.js অ্যাপ্লিকেশনগুলিকে ইনকামিং অনুরোধগুলি শোনার জন্য http বা https মডিউল ব্যবহার করতে হবে৷ আপনি যদি এমন একটি স্ক্রিপ্ট স্থাপন করেন যা ইনকামিং অনুরোধের জন্য শোনে না, তবে এটি কেবল কার্যকর হবে এবং প্রস্থান করবে।

Node.js-এ http এবং https মডিউলের listen মেথড প্যারামিটার হিসেবে একটি পোর্ট নম্বর নেয়। যেমন:

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

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

Apigee-এর প্রতিটি পরিবেশে অন্তত একটি ভার্চুয়াল হোস্ট থাকে। Apigee প্রতিষ্ঠানের সাথে সংযোগের জন্য ভার্চুয়াল হোস্ট HTTP সেটিংস সংজ্ঞায়িত করে। একটি পরিবেশের সমস্ত API প্রক্সি একই ভার্চুয়াল হোস্ট শেয়ার করে। ডিফল্টরূপে, প্রতিটি পরিবেশের জন্য দুটি ভার্চুয়াল হোস্ট উপলব্ধ: default এবং secure । আরও তথ্যের জন্য, ভার্চুয়াল হোস্ট এবং API ডেভেলপমেন্ট লাইফসাইকেল পান দেখুন।

apigeetool deploynodeapp কমান্ড Node.js অ্যাপ্লিকেশনের চারপাশে একটি Apigee Edge প্রক্সি র‌্যাপার তৈরি করে। স্থাপন করা হলে, Node.js অ্যাপ্লিকেশন পরিবেশের জন্য সংজ্ঞায়িত ডিফল্ট ভার্চুয়াল হোস্টে শোনে। একটি Node.js অ্যাপ্লিকেশনের URL সর্বদা http://{org_name}-{env_name}.apigee.net হবে।

ইনকামিং অনুরোধ হ্যান্ডলিং

অন্যান্য Apigee Edge অ্যাপ্লিকেশনের মতো, যদি প্রক্সি অ্যাপ্লিকেশনটি secure ভার্চুয়াল হোস্টে শোনার জন্য সেট আপ করা হয়, তাহলে এটি HTTPS ব্যবহার করে আগত অনুরোধগুলি গ্রহণ করবে।

বহির্গামী অনুরোধ হ্যান্ডলিং

ইনকামিং ট্র্যাফিক পাওয়ার পাশাপাশি, Apigee Edge-এর মধ্যে Node.js অ্যাপ্লিকেশনগুলি অন্য যে কোনও Node.js অ্যাপ্লিকেশনের মতো আউটবাউন্ড অনুরোধ করতে http এবং https মডিউল ব্যবহার করতে পারে। এই মডিউলগুলো ঠিক যেমন কাজ করে তারা সবসময় Node.js এর ভিতরে করে।

tls মডিউলের জন্য সমর্থন বোঝা

Apigee Edge Node.js tls মডিউল সমর্থন করে। এই মডিউলটি ট্রান্সপোর্ট লেয়ার সিকিউরিটি (TLS) এবং/অথবা সিকিউর সকেট লেয়ার (SSL) এনক্রিপ্ট করা স্ট্রিম কমিউনিকেশন প্রদান করতে OpenSSL ব্যবহার করে। আপনি এজ এ চলমান Node.js অ্যাপ্লিকেশনগুলি থেকে ব্যাকএন্ড পরিষেবাগুলিতে সুরক্ষিত সংযোগ তৈরি করতে tls মডিউল ব্যবহার করতে পারেন।

Apigee Edge এ tls মডিউল কিভাবে কাজ করে তা বোঝার জন্য, Apigee Edge এ virtual hosts কিভাবে ব্যবহার করা হয় তা বোঝা গুরুত্বপূর্ণ। Apigee-এর প্রতিটি পরিবেশে অন্তত একটি ভার্চুয়াল হোস্ট থাকে। Apigee প্রতিষ্ঠানের সাথে সংযোগের জন্য ভার্চুয়াল হোস্ট HTTP সেটিংস সংজ্ঞায়িত করে। একটি পরিবেশের সমস্ত API প্রক্সি একই ভার্চুয়াল হোস্ট শেয়ার করে। ডিফল্টরূপে, প্রতিটি পরিবেশের জন্য দুটি ভার্চুয়াল হোস্ট উপলব্ধ: default এবং secure । ভার্চুয়াল হোস্ট সম্পর্কে আরও তথ্যের জন্য, ভার্চুয়াল হোস্ট এবং API উন্নয়ন জীবনচক্র দেখুন।

এখন, আসুন দেখি কিভাবে Apigee Edge Node.js অ্যাপ্লিকেশনে ইনকামিং এবং আউটগোয়িং অনুরোধের জন্য TLS (SSL) যোগাযোগ পরিচালনা করে:

ইনকামিং অনুরোধ হ্যান্ডলিং

আপনার প্রতিষ্ঠানের জন্য ভার্চুয়াল হোস্টগুলি কীভাবে কনফিগার করা হয়েছে তার উপর নির্ভর করে, এজ এই বিকল্পগুলি সরবরাহ করে:

  • যদি এপিআই প্রক্সি default ভার্চুয়াল হোস্টে শোনার জন্য কনফিগার করা থাকে, তাহলে এটি HTTP-তে অনুরোধ গ্রহণ করে।
  • যদি API প্রক্সি secure ভার্চুয়াল হোস্টে শোনার জন্য কনফিগার করা থাকে, তাহলে এটি HTTPS-এর মাধ্যমে অনুরোধ গ্রহণ করে। URLটি apigee.net ডোমেনের অধীনে থাকবে এবং *.apigee.net এর জন্য একটি ওয়াইল্ডকার্ড SSL শংসাপত্র ব্যবহার করা হবে৷ যতক্ষণ পর্যন্ত অ্যাপগুলি apigee.net ডোমেনে অনুরোধ করে, ততক্ষণ SSL শংসাপত্র স্বাভাবিকভাবে বৈধ হবে।

বহির্গামী অনুরোধ হ্যান্ডলিং

আপনি tls মডিউল দিয়ে বহির্গামী অনুরোধ করতে পারেন যেভাবে আপনি সাধারণত Node.js এ করেন। মূলত, আপনাকে resources/node ডিরেক্টরিতে ক্লায়েন্ট-সাইড কী এবং সার্টিফিকেট ( .pem ফাইল) যোগ করতে হবে এবং আপনার স্ক্রিপ্টের ভিতরে লোড করতে হবে। tls মডিউল এবং এর পদ্ধতি ব্যবহার সম্পর্কে তথ্যের জন্য, Node.js tls মডিউল ডকুমেন্টেশন দেখুন।

উন্নত স্ক্রিপ্ট টার্গেট কনফিগারেশন

<TargetEndpoint> সংজ্ঞায়, <ScriptTarget> উপাদানটি <ResourceURL> ছাড়াও অতিরিক্ত ঐচ্ছিক পরামিতি গ্রহণ করে। এছাড়াও আপনি <EnvironmentVariables> এবং <Arguments> প্যারামিটার ব্যবহার করে একটি Node.js স্ক্রিপ্টে কমান্ড-লাইন আর্গুমেন্ট এবং এনভায়রনমেন্ট ভেরিয়েবল পাস করতে পারেন:
<TargetEndpoint name="default">
  <ScriptTarget>
     <ResourceURL>node://hello.js</ResourceURL>
     <EnvironmentVariables>
         <EnvironmentVariable name="NAME">VALUE</EnvironmentVariable> 
     </EnvironmentVariables>
     <Arguments>
         <Argument>ARG</Argument>
     </Arguments>
  </ScriptTarget>
</TargetEndpoint>