হোস্ট করা লক্ষ্য কাজ

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

একটি হোস্টেড টার্গেট প্রক্সি আনডিপ্লোয়িং

আপনি যখন একটি এজ প্রক্সি আনডিপ্লোয় করেন যার মধ্যে একটি হোস্টেড টার্গেট অ্যাপ্লিকেশান থাকে, তখন সংশ্লিষ্ট হোস্টেড টার্গেট অ্যাপটি আনডিপ্লোয় করা হয়, কিন্তু অন্তর্নিহিত অ্যাপ্লিকেশন ইমেজটি মুছে ফেলা হয় না। আপনি যদি প্রক্সি পুনরায় স্থাপন করেন, হোস্টেড টার্গেট অ্যাপটি পুনরায় স্থাপন করা হয়।

একটি হোস্ট করা লক্ষ্য প্রক্সি মুছে ফেলা হচ্ছে

আপনি একটি হোস্টেড টার্গেট প্রক্সি মুছে ফেলার পরে, অন্তর্নিহিত রানটাইম দৃষ্টান্তগুলি কিছু সময়ের মধ্যে চলা বন্ধ হয়ে যাবে। আবেদন কোড বজায় থাকবে, তবে.

লগ ফাইল অ্যাক্সেস করা হচ্ছে

লগ ফাইলগুলি ডিবাগিং এবং সমস্যা সমাধানের জন্য দরকারী। হোস্টেড টার্গেট স্থাপনের জন্য আপনি দুই ধরনের লগ ফাইল দেখতে পারেন:

  • বিল্ড লগ - একটি হোস্টেড টার্গেট অ্যাপ স্থাপন এবং নির্মাণের সাথে সম্পর্কিত আউটপুট দেখায়।
  • রানটাইম লগ - চলমান হোস্টেড টার্গেট অ্যাপের সাথে সম্পর্কিত আউটপুট দেখায়। রানটাইম লগগুলি পরিবেশে স্কোপ করা হয় এবং বর্তমানে স্থাপন করা প্রক্সি রিভিশনের জন্য লগ তথ্য দেখায়।

এজ UI থেকে লগ অ্যাক্সেস করা হচ্ছে

  1. apigee.com/edge এ যান
  2. আপনার লগইন শংসাপত্র লিখুন এবং সাইন ইন ক্লিক করুন.
  3. পাশের নেভিগেশন মেনুতে বিকাশ > API প্রক্সি নির্বাচন করুন।
  4. যে প্রক্সিটির জন্য আপনি লগ দেখতে চান সেটি নির্বাচন করুন।
  5. বিকাশ ট্যাবে ক্লিক করুন।
  6. বিল্ড লগ দেখতে, বিল্ড লগ-এ ক্লিক করুন।
  7. রানটাইম লগ দেখতে, রানটাইম লগ-এ ক্লিক করুন।

API এর সাথে লগ অ্যাক্সেস করা

হোস্ট করা টার্গেট লগ পুনরুদ্ধার করতে আপনি একটি এজ API ব্যবহার করতে পারেন। বিস্তারিত জানার জন্য, ক্যাশেড Node.js লগ পান দেখুন।

একটি ব্যক্তিগত এনপিএম সংগ্রহস্থল ব্যবহার করা

এই বিভাগটি ব্যাখ্যা করে যে কীভাবে আপনি আপনার উন্নয়ন পরিবেশে একটি ব্যক্তিগত NPM সংগ্রহস্থল ব্যবহার করেন সেক্ষেত্রে হোস্ট করা লক্ষ্যগুলিতে একটি Node.js প্রক্সি স্থাপন করতে হয়।

একটি ব্যক্তিগত সংগ্রহস্থল ব্যবহার সম্পর্কে আপনার যা জানা দরকার

আপনি যখন এজে একটি Node.js অ্যাপ স্থাপন করেন, তখন আপনার প্রকল্পের সমস্ত নির্ভরতা স্থাপন প্রক্রিয়ার অংশ হিসাবে স্বয়ংক্রিয়ভাবে আমদানি হয়। মূলত, হোস্টেড টার্গেটস আপনার কোডে npm install চালায় যখন এটি স্থাপন করা হয়। যাইহোক, যদি আপনি আপনার উন্নয়ন পরিবেশে একটি ব্যক্তিগত NPM সংগ্রহস্থল ব্যবহার করেন, ব্যক্তিগত নির্ভরতা ক্লাউডে সমাধান করা যাবে না। এই ক্ষেত্রে, সমাধান হল --bundled-dependencies বিকল্পটি ব্যবহার করা যখন আপনি deployment utility apigeetool ব্যবহার করেন। আরও দেখুন আপনার সিস্টেম থেকে এজ পর্যন্ত Node.js স্থাপন করুন।

আপনি যখন apigeetool--bundled-dependencies ফ্ল্যাগ ব্যবহার করেন, তখন আপনার Node.js অ্যাপ হোস্টেড টার্গেটে আপলোড করা হবে এবং package.json এর bundledDependencies অ্যারেতে তালিকাভুক্ত যেকোনো স্থানীয়/ব্যক্তিগত ফাইল জিপ করা হবে এবং বান্ডেলের সাথে আপলোড করা হবে।

যদিও একটি সাধারণ পরিস্থিতি নয়, সচেতন থাকুন যে আপনি যদি একটি সর্বজনীন NPM সংগ্রহস্থল অভ্যন্তরীণভাবে মিরর করেন, আপনার স্থাপনা ব্যর্থ হবে যদি আপনার স্থাপনার বান্ডেলে একটি .npmrc বা package-lock.json ফাইল থাকে যা আপনার ব্যক্তিগত আয়নার দিকে নির্দেশ করে। এই ক্ষেত্রে, আপনার প্রক্সি বান্ডেল থেকে .npmrc বা package-lock.json বাদ দিতে ভুলবেন না যা আপনি স্থাপন করতে চান।

একটি ব্যক্তিগত NPM সংগ্রহস্থলের সাথে স্থাপন করা হচ্ছে

একটি ব্যক্তিগত NPM সংগ্রহস্থল থেকে প্রদত্ত মডিউলগুলি ব্যবহার করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. npm লগ ইন করুন:
    npm login
  2. একটি npm প্রমাণীকরণ টোকেন পান:
    1. আপনার .npmrc সনাক্ত করুন ( ~/.npmrc এ থাকা উচিত)।
    2. আপনার .npmrc- এ, লাইনের শেষে টোকেনটি নোট করুন যা দেখতে এইরকম:

      //registry.npmjs.org/:_authToken=****
    3. অথবা npm token <list | create | revoke> ব্যবহার করুন npm token <list | create | revoke> একটি প্রমাণীকরণ টোকেন তালিকা, তৈরি বা প্রত্যাহার করতে npm token <list | create | revoke> কমান্ড। আরো বিস্তারিত জানার জন্য npm-টোকেন ডকুমেন্টেশন দেখুন।
  3. কী মান মানচিত্র কনফিগারেশন পৃষ্ঠা অ্যাক্সেস করুন, নীচে বর্ণিত হিসাবে।

    প্রান্ত

    এজ UI ব্যবহার করে মূল মান মানচিত্র কনফিগারেশন পৃষ্ঠা অ্যাক্সেস করতে:

    1. apigee.com/edge এ সাইন ইন করুন।
    2. বাম নেভিগেশন বারে অ্যাডমিন > পরিবেশ > মূল মান মানচিত্র নির্বাচন করুন।

    ক্লাসিক এজ (ব্যক্তিগত ক্লাউড)

    ক্লাসিক এজ UI ব্যবহার করে মূল মান মানচিত্র কনফিগারেশন পৃষ্ঠা অ্যাক্সেস করতে:

    1. http:// ms-ip :9000 এ সাইন ইন করুন, যেখানে ms-ip হল ম্যানেজমেন্ট সার্ভার নোডের IP ঠিকানা বা DNS নাম।
    2. শীর্ষ নেভিগেশন বারে APIs > পরিবেশ কনফিগারেশন > মূল মান মানচিত্র নির্বাচন করুন।
  4. ক্লিক করুন + মূল মান মানচিত্র .
  5. নতুন কী মান মানচিত্র ডায়ালগে, একটি নাম লিখুন এবং এনক্রিপ্ট করা নির্বাচন করুন।
  6. যোগ করুন ক্লিক করুন.
  7. আপনি এইমাত্র তৈরি করা প্রতিটি KVM-এ একটি নতুন এন্ট্রি হিসাবে আপনি পূর্বে অবস্থিত বা তৈরি করা প্রমাণীকরণ টোকেন যোগ করুন।
  8. আপনার app.yaml ফাইলে একটি এন্ট্রি যোগ করুন যা npm auth টোকেনের সাথে সম্পর্কিত KVM এবং কী উল্লেখ করে। এটি এই মত কিছু দেখা উচিত:
  9. env:
    - name: NPM_TOKEN
     valueRef:
       name: npm_store
       key: private_token

    কোথায়:

    • শীর্ষ স্তরের নামের বৈশিষ্ট্যটি তৈরি করা হবে এমন পরিবেশের ভেরিয়েবলের নামের সাথে মিলে যায়।
    • valueRef-এর অধীনে নামটি আপনার পূর্বে তৈরি করা KVM-এর সাথে মিলে যায়।
    • কী বৈশিষ্ট্যটি আপনার KVM-এ যোগ করা npm টোকেনের সাথে ম্যাপ করা কী-এর সাথে মিলে যায়।
  10. আপনার package.json-এর মতো একই ডিরেক্টরিতে একটি .npmrc ফাইল তৈরি করুন। এই ফাইলটির মতো দেখতে হবে:
    //registry.npmjs.org/:_authToken=${NPM_TOKEN}
    অথবা আপনি যদি registry.npmjs.org ব্যবহার না করেন তাহলে আপনি এই @myscope:registry=https://mycustomregistry.example.org এর মত একটি লাইন যোগ করে .npmrc ফাইলে স্কোপ সেট করতে পারেন npmrc ডকুমেন্টেশনটিও দেখুন।
  11. .npmrc ফাইল এবং app.yaml ফাইল অন্তর্ভুক্ত করে আপনার Node.js প্রক্সি আপলোড বা আপডেট করুন।
  12. নিশ্চিত করুন যে আপনার নতুন বা আপডেট করা প্রক্সি কাঙ্খিত ব্যক্তিগত সংগ্রহস্থল মডিউলের সাথে স্থাপন এবং কাজ করে৷
  13. যদি প্রক্সি স্থাপন না করা হয়, ব্যক্তিগত npm মডিউল ইনস্টল করতে ব্যর্থ হয়েছে কিনা তা দেখতে বিল্ড লগগুলি পরীক্ষা করুন৷ যদি তাই হয়:
    1. বিকাশ ট্যাবের অধীনে, নিশ্চিত করুন যে .npmrc উপস্থিত রয়েছে।
    2. নিশ্চিত করুন যে আপনার টোকেন বৈধ (kvm-এ উপস্থিত টোকেন সহ স্থানীয়ভাবে মডিউল ইনস্টল করার চেষ্টা করুন)।
    3. আপনি যদি একটি কাস্টম সুযোগ ব্যবহার করছেন, নিশ্চিত করুন যে এটি সেট করা আছে।

বান্ডিল নির্ভরতার জন্য NPM সংস্করণ নির্দিষ্ট করা

ডিফল্টরূপে, NPM v4 হোস্ট করা টার্গেট পরিবেশে বান্ডিল নির্ভরতা ইনস্টল করতে ব্যবহৃত হয়। যাইহোক, যদি আপনি একটি ভিন্ন NPM সংস্করণ ব্যবহার করতে চান, আপনি NPM_VERSION এনভায়রনমেন্ট ভেরিয়েবলে এটি নির্দিষ্ট করতে পারেন। আপনি অ্যাপ্লিকেশনের ম্যানিফেস্ট ফাইলে এই ভেরিয়েবল সেট করতে পারেন। বিস্তারিত জানার জন্য ম্যানিফেস্ট ফাইল উপাদান দেখুন।

আপনি যদি বান্ডিল নির্ভরতা ব্যবহার করেন, এবং যদি আপনি NPM_VERSION নির্দিষ্ট না করেন, হোস্ট করা লক্ষ্যগুলি ডিফল্টরূপে NPM v4 ব্যবহার করে। আপনি যদি বান্ডিল নির্ভরতা ব্যবহার না করেন, তাহলে NPM-এর সংস্করণ যা আপনার নির্দিষ্ট Node.js রানটাইমে অন্তর্ভুক্ত করা হয়।

বান্ডিল নির্ভরতার উদাহরণ

একটি উদাহরণের জন্য যা হোস্টেড টার্গেটের সাথে বান্ডিল নির্ভরতা বৈশিষ্ট্য প্রদর্শন করে, দেখুন কিভাবে কাস্টম মডিউল ব্যবহার করে হোস্টেড ফাংশনগুলির সাথে একটি Node.js অ্যাপ্লিকেশন তৈরি করা যায়

একটি স্বাস্থ্য পরীক্ষা শেষ পয়েন্ট যোগ করুন

আপনার Node.js অ্যাপ্লিকেশানের জন্য একটি স্বাস্থ্য পরীক্ষা শেষ পয়েন্ট বাস্তবায়নের বিকল্প রয়েছে৷ Apigee এই এন্ডপয়েন্টটি ব্যবহার করে যখন আপনার Node.js অ্যাপ্লিকেশনটি পরীক্ষা করা শুরু করে যে অ্যাপ্লিকেশনটি কন্টেইনারে চলছে এবং চলছে।

ডিফল্টরূপে, Apigee যে এন্ডপয়েন্টটি আশা করে তা হল /health । আপনি HOSTED_TARGET_HEALTH_CHECK_PATH নামের একটি পরিবেশ ভেরিয়েবলে শেষ বিন্দু নির্দিষ্ট করে ডিফল্ট এন্ডপয়েন্ট পরিবর্তন করতে পারেন। আপনি অ্যাপ্লিকেশনের ম্যানিফেস্ট ফাইলে এই ভেরিয়েবল সেট করতে পারেন। বিস্তারিত জানার জন্য ম্যানিফেস্ট ফাইল উপাদান দেখুন।

একটি স্বাস্থ্য পরীক্ষা শেষ পয়েন্ট বাস্তবায়ন প্রয়োজন হয় না. যাইহোক, যদি আপনি একটি স্বাস্থ্য পরীক্ষা শেষ পয়েন্ট বাস্তবায়ন করেন, নিম্নলিখিতগুলি নোট করুন:

  • Apigee এন্ডপয়েন্টে আঘাত করলে আপনার অ্যাপ্লিকেশনটি প্রস্থান করলে, অ্যাপ্লিকেশনটি প্রত্যাশিতভাবে শুরু হবে না।
  • আপনার এন্ডপয়েন্ট যদি 404 নট ফাউন্ড HTTP স্ট্যাটাস দেয় তাহলে ঠিক আছে। /health বা HOSTED_TARGET_HEALTH_CHECK_PATH শুধুমাত্র আপনার অ্যাপ্লিকেশন চলছে কিনা তা পরীক্ষা করতে ব্যবহৃত হয়। প্রকৃত প্রতিক্রিয়া উপেক্ষা করা হয়.

NPM ক্যাশে অবস্থান পরিবর্তন করুন

Node.js-এর নতুন সংস্করণগুলি NPM-এর একটি সংস্করণ ব্যবহার করে যা NPM ক্যাশের জন্য /root/.npm ব্যবহার করে। এই অবস্থানটি হোস্ট করা লক্ষ্যগুলির জন্য একটি সমস্যা উপস্থাপন করে কারণ সেই ডিরেক্টরি অবস্থানটি শুধুমাত্র পঠনযোগ্য কারণ হোস্টেড টার্গেট রানটাইম একটি tmpfs ফাইল সিস্টেম ব্যবহার করে যেখানে শুধুমাত্র /tmp লেখার যোগ্য। এই সমস্যাটি সমাধান করার জন্য আপনি আপনার অ্যাপ্লিকেশনের app.yaml ফাইলে (মেনিফেস্ট ফাইল) npm_config_cache এনভায়রনমেন্ট ভেরিয়েবল /tmp মধ্যে একটি ডিরেক্টরিতে সেট করতে পারেন। যেমন:

  runtime: node
  application: my-express-app
  env:
    - name: npm_config_cache
      value: /tmp/.npm
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  

NPM ছাড়া আপনার আবেদন চালান

ডিফল্টরূপে, হোস্টেড টার্গেট আপনার হোস্টেড টার্গেট অ্যাপ্লিকেশন চালানোর জন্য npm start ব্যবহার করে। কিন্তু পূর্ববর্তী টাস্কে আমরা NPM ব্যবহারে একটি সমস্যা নিয়ে আলোচনা করেছি কারণ নতুন সংস্করণগুলি NPM ক্যাশের জন্য /root/.npm ব্যবহার করার চেষ্টা করবে, যা অলিখিত এবং এর ফলে আপনার হোস্টেড টার্গেট শুরু হতে ব্যর্থ হয়। যদিও পূর্ববর্তী কাজটি এই সমস্যাটি নিয়ে কাজ করবে, অন্য একটি বিকল্প হল NPM ছাড়া আপনার অ্যাপ্লিকেশন চালানো। এটি করার জন্য, আপনি node index.js ব্যবহার করে সরাসরি আপনার হোস্টেড টার্গেট চালানোর জন্য আপনার অ্যাপ্লিকেশনের app.yaml ফাইলে (মেনিফেস্ট ফাইল) command এবং args মান ব্যবহার করতে পারেন। যেমন:

  runtime: node
  application: my-express-app
  command: node
  args:
    - index.js
  env:
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  
অবশ্যই, আপনি উপযুক্ত মনে করেন যাই হোক না কেন কমান্ড ব্যবহার করতে পারেন এবং node index.js শুধুমাত্র একটি উদাহরণ.