আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান । তথ্য
পরিবেশ পরিবর্তনশীল সীমা
হোস্টেড টার্গেট এনভায়রনমেন্ট ভেরিয়েবলের আকার এবং সংখ্যা সীমিত করে যা আপনি হোস্ট করা টার্গেট রানটাইম পরিবেশে সেট করতে পারেন।
- 1000: একটি একক পরিবেশ পরিবর্তনশীলের সর্বোচ্চ দৈর্ঘ্য।
- 100: সর্বাধিক সংখ্যক পরিবেশ ভেরিয়েবল যা আপনি সেট করতে পারেন।
পরিবেশ ভেরিয়েবল সেট করার বিষয়ে তথ্যের জন্য, ম্যানিফেস্ট ফাইল দেখুন।
এনভায়রনমেন্ট ভেরিয়েবল অ্যাপ্লিকেশন রানটাইমে সেট
যখন আপনি একটি হোস্টেড টার্গেট অ্যাপ্লিকেশন স্থাপন করেন, তখন নিম্নলিখিত পরিবেশ ভেরিয়েবল সেট করা হয় এবং রানটাইমে আপনার অ্যাপ্লিকেশনের জন্য উপলব্ধ থাকে:
-
APIGEE_ENVIRONMENT
- পরিবেশ যেখানে হোস্ট করা টার্গেট প্রক্সি স্থাপন করা হয়। -
APIGEE_ORGANIZATION
- যে প্রতিষ্ঠানে হোস্ট করা টার্গেট প্রক্সি স্থাপন করা হয়। -
PORT
- পোর্ট যেখানে হোস্ট করা লক্ষ্য অ্যাপ্লিকেশন শুনতে হবে।
সিস্টেম সম্পদ বরাদ্দ
প্রতিটি হোস্ট করা লক্ষ্যমাত্রা নিম্নলিখিত সংস্থানগুলি গ্রহণ করে:
- 256 এমবি মেমরি
- 1.2 GHz CPU
স্কেলিং
এই বিভাগটি বর্ণনা করে কিভাবে হোস্টেড টার্গেট অ্যাপ্লিকেশন স্কেল, আপনার এজ অ্যাকাউন্টের ধরনের উপর নির্ভর করে।- Apigee Edge-এর একটি ট্রায়াল সংস্করণ প্রক্সি প্রতি একটি হোস্টেড টার্গেট ইনস্ট্যান্সের মধ্যে সীমাবদ্ধ।
- প্রদত্ত Apigee Edge অ্যাকাউন্টগুলি অনুরোধের হার, প্রতিক্রিয়া বিলম্ব, এবং প্রক্সি প্রতি অন্যান্য অ্যাপ্লিকেশন মেট্রিক্সের উপর ভিত্তি করে স্বয়ংক্রিয় স্কেলিং পায়।
- হোস্ট করা টার্গেট অ্যাপগুলি নিষ্ক্রিয়তার সময়কালে Apigee Edge স্কেলের পেইড এবং ট্রায়াল উভয় সংস্করণে শূন্যে স্থাপন করা হয়েছে। এই ক্ষেত্রে, আপনি একটি সংক্ষিপ্ত সময়ের জন্য ধীর প্রতিক্রিয়া সময় লক্ষ্য করতে পারেন। এছাড়াও পরিচিত সমস্যা দেখুন
ম্যানিফেস্ট ফাইল
হোস্ট করা অ্যাপ্লিকেশন তৈরি এবং স্থাপনের জন্য রানটাইম তথ্য সংগ্রহ করতে, এজ রিসোর্স/হোস্টেড ডিরেক্টরিতে app.yaml নামে একটি ম্যানিফেস্ট ফাইল খোঁজে। এই ফাইলটিতে হোস্টেড টার্গেট অ্যাপ্লিকেশন তৈরি এবং স্থাপন করার জন্য প্রয়োজনীয় তথ্য রয়েছে।
Manfiest ফাইল সিনট্যাক্স
runtime: node runtimeVersion: version_number command: command_name args: argument_array env: - name: variable_name value: literal_value - name: variable_name valueRef: name: kvm_name key: kvm_value
ম্যানিফেস্ট ফাইল উপাদান
একটি app.yaml ম্যানিফেস্ট ফাইল এই উপাদানগুলি অন্তর্ভুক্ত করে:
- রানটাইম - (প্রয়োজনীয়) আপনি যে ধরনের অ্যাপ্লিকেশন স্থাপন করছেন তা নির্দিষ্ট করে। আপনাকে অবশ্যই
node
নির্দিষ্ট করতে হবে। - রানটাইম সংস্করণ - (ঐচ্ছিক) রানটাইমের সংস্করণ যা আপনার অ্যাপ্লিকেশন ব্যবহার করে। ডিফল্ট: Node.js LTS (v10.x)। অন্যান্য বিকল্পের জন্য নোডের জন্য ডকার অফিসিয়াল রিপোজিটরি পড়ুন।
- কমান্ড - (ঐচ্ছিক) আপনার অ্যাপ্লিকেশন শুরু করার জন্য ব্যবহৃত ডিফল্ট কমান্ড ব্যতীত অন্য চালানোর জন্য আপনাকে একটি কমান্ড নির্দিষ্ট করতে দেয়। ডিফল্ট:
Node.js=npm
- args - (ঐচ্ছিক) অ্যাপ্লিকেশনে পাস করার জন্য কমান্ড লাইন আর্গুমেন্টের অ্যারে (স্ট্যান্ডার্ড YAML অ্যারে সিনট্যাক্সে নির্দিষ্ট করা হয়েছে)। সাধারণত, এগুলি ডিফল্ট কমান্ডে যোগ করা হয়। ডিফল্ট হল শুরু । উদাহরণস্বরূপ, ডিফল্টরূপে Node.js অ্যাপটিকে
npm start
কমান্ডটি পাস করা হবে। - env - (ঐচ্ছিক) পরিবেশ ভেরিয়েবলের একটি অ্যারে (নাম/মান জোড়া) হোস্ট করা লক্ষ্য রানটাইম পরিবেশে সেট করা। এই ভেরিয়েবলগুলি আপনার স্থাপন করা হোস্টেড টার্গেট অ্যাপে উপলব্ধ।
- নাম - পরিবর্তনশীল নাম।
- মান | valueRef - আপনার দুটি বিকল্প আছে। আপনি একটি আক্ষরিক মান সেট করতে পারেন বা একটি মূল মান মানচিত্রে সঞ্চিত একটি মান উল্লেখ করতে পারেন। মূল মান মানচিত্রটি অবশ্যই আপনার এজ পরিবেশে বিদ্যমান থাকতে হবে। মূল মান মানচিত্রের সাথে কাজ করা দেখুন
- যদি আপনি মান ব্যবহার করেন, তাহলে আপনাকে অবশ্যই একটি পরিবর্তনশীল
name
এবং একটি আক্ষরিকvalue
উল্লেখ করতে হবে। যেমন:runtime: node env: - name: NODE_ENV value: production
- আপনি যদি valueRef ব্যবহার করেন, তাহলে আপনাকে অবশ্যই একটি কী মান মানচিত্র (KVM) এর নাম সরবরাহ করতে হবে যা আপনি পূর্বে এজ এ তৈরি করেছেন এবং একটি কী । যেমন:
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
- যদি আপনি মান ব্যবহার করেন, তাহলে আপনাকে অবশ্যই একটি পরিবর্তনশীল
ম্যানিফেস্ট ফাইলের উদাহরণ
এই বিভাগে Node.js অ্যাপ্লিকেশনের জন্য উদাহরণ ম্যানিফেস্ট ফাইল রয়েছে। একটি হোস্টেড টার্গেট অ্যাপ স্থাপন করার জন্য একটি ম্যানিফেস্ট ফাইল প্রয়োজন, এবং এটি অবশ্যই apiproxy/resources/hosted
ডিরেক্টরিতে অবস্থিত হতে হবে এবং ফাইলের নাম অবশ্যই app.yaml
হতে হবে।
নিচে Node.js অ্যাপের জন্য app.yaml
(মেনিফেস্ট) ফাইলের উদাহরণ দেওয়া হল।
উদাহরণ যা একটি আক্ষরিক পরিবেশ পরিবর্তনশীল নির্দিষ্ট করে:
runtime: node env: - name: NODE_ENV value: production
একটি স্টার্ট কমান্ড, কমান্ড-লাইন আর্গুমেন্ট এবং একটি পরিবেশ পরিবর্তনশীল সহ উদাহরণ।
runtime: node command: ./node_modules/pm2/bin/pm2 env: - name: NODE_ENV value: production args: - app.js
একটি মূল মান মানচিত্র (KVM) রেফারেন্স নির্দিষ্ট করে এমন উদাহরণ:
KVM অ্যাক্সেস সম্পর্কে আরও তথ্যের জন্য, ম্যানিফেস্ট ফাইলটি দেখুন।
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
GitHub-এ নমুনা হোস্ট করা টার্গেট অ্যাপ্লিকেশন
Apigee Node.js এ লেখা হোস্টেড টার্গেট অ্যাপ্লিকেশন সহ GitHub-এ নমুনা প্রক্সি সরবরাহ করে। আপনি এই রেপো ক্লোন করতে পারেন এবং যেকোনো প্রক্সি স্থাপন করতে README নির্দেশাবলী অনুসরণ করতে পারেন।
পূর্বশর্ত
নমুনা স্থাপন করতে, আপনার সিস্টেমে দুটি সরঞ্জাম ইনস্টল থাকতে হবে:
- apigeetool -- এজ প্রক্সি স্থাপনের জন্য একটি কমান্ড লাইন টুল।
- get_token - apigeetool দ্বারা প্রয়োজনীয় একটি অনুমোদন টোকেন পাওয়ার জন্য একটি কমান্ড লাইন টুল।
আপনি যদি স্থানীয়ভাবে নমুনা পরীক্ষা করতে চান তবে আপনাকে অবশ্যই Node.js ইনস্টল করতে হবে।
নমুনা রেপো প্রাপ্তি
- একটি ব্রাউজারে, https://github.com/apigee/api-platform-samples- এ যান।
- ক্লোন ক্লিক করুন বা আপনার পছন্দের পদ্ধতি ব্যবহার করে আপনার স্থানীয় সিস্টেমে রেপো ডাউনলোড করুন এবং টানুন।
- cd to <your install dir>/api-platform-samples/doc-samples/hosted-targets
- রেপো ডাউনলোড হয়ে গেলে, আপনি যেকোন নমুনা ডিরেক্টরিতে সিডি করতে পারেন এবং এজ-এ একটি নমুনা প্রক্সি স্থাপন করতে README নির্দেশাবলী অনুসরণ করতে পারেন। ডিপ্লোয় কমান্ডটি নীচে দেখানো হয়েছে। আপনার Apigee অ্যাকাউন্টের জন্য শুধুমাত্র নির্দেশিত প্যারামিটারগুলিকে প্রতিস্থাপন করুন:
get_token && apigeetool deployproxy \ -o YOUR_ORGANIZATION \ -e YOUR_ENVIRONMENT \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api NAME_OF_THE_PROXY \ --directory .
উদাহরণ: একটি নমুনা অ্যাপ্লিকেশন চালানো
নমুনা সংগ্রহস্থল ক্লোন
cd ~/myhome
git clone https://github.com/apigee/api-platform-samples.git
cd ~/myhome/api-platform-samples/doc-samples/hosted-targets
cd node-hosted-hello
স্থানীয়ভাবে আবেদন পরীক্ষা করুন
এই স্থানীয় পরীক্ষাটি করতে আপনার অবশ্যই Node.js ইনস্টল থাকতে হবে।
PORT=8081 node apiproxy/resources/hosted/index.js
curl http://localhost:8081
উদাহরণ আউটপুট:
{"date":"2018-03-12T21:45:22.161Z","msg":"Hello, World!"}
প্রক্সি স্থাপন করুন
get_token && apigeetool deployproxy \ -o myorg \ -e test \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api node-hosted-hello \ --directory .
স্থাপনার পরীক্ষা করুন
স্থাপনা সম্পূর্ণ হতে কয়েক মিনিট সময় লাগতে পারে। আপনি যদি একটি স্থাপনার ত্রুটি পান, আবার ডিপ্লোয় কমান্ডটি চালান।
curl http://myorg-test.apigee.net/node-hosted-hello
উদাহরণ আউটপুট:
{"date":"2018-03-23T18:59:18.668Z","msg":"Hello, World!"
পরিচিত সমস্যা
- নেটওয়ার্ক লেটেন্সি - এখন যেহেতু Node.js অ্যাপ্লিকেশন আর এমপির JVM-এ চলে না, এখন এমপি এবং স্থাপনার মধ্যে একটি নেটওয়ার্ক হপ রয়েছে৷ অবশ্যই এটি একটি খরচে আসে তবে প্রাথমিক বেঞ্চমার্কগুলি এটি একটি যুক্তিসঙ্গত পরিমাণের মধ্যে ভাল হতে দেখায়
- ধীর API প্রতিক্রিয়া - আপনার অ্যাপ্লিকেশনগুলি চালানোর পরিকাঠামো স্বয়ংক্রিয়ভাবে প্রয়োজনের উপর ভিত্তি করে স্কেল করে। এর অর্থ হল আপনার অ্যাপ্লিকেশনটি আসলে শূন্য দৃষ্টান্তে স্কেল করতে পারে এবং যদি এটি হয় তবে পরবর্তী API অনুরোধটি সাধারণ API অনুরোধগুলির চেয়ে একটু বেশি সময় নেবে যেহেতু অবকাঠামো অনুরোধ(গুলি) প্রক্রিয়া করার জন্য উদাহরণ(গুলি) স্পিন করছে৷
- স্থাপনার ত্রুটি - একটি হোস্টেড টার্গেট প্রক্সি স্থাপন করার সময় আপনি যদি একটি স্থাপনার ত্রুটি পান, তাহলে প্রক্সি পুনরায় স্থাপন করার চেষ্টা করুন। কিছু ক্ষেত্রে, স্থাপনার সময় শেষ হতে পারে এবং আপনি যদি পুনরায় স্থাপন করেন, তাহলে সমস্যাটি নিজেই সমাধান হয়ে যাবে।