মূল মান মানচিত্র সঙ্গে কাজ

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

অনেক সময় রানটাইমে ডেটা পুনরুদ্ধারের জন্য তা সংরক্ষণ করার প্রয়োজন হয়—এমন ডেটা যার কোনো মেয়াদ নেই এবং যা আপনার এপিআই প্রক্সি লজিকে হার্ড-কোড করা উচিত নয়। এর জন্য কী-ভ্যালু ম্যাপ (KVM) একটি আদর্শ সমাধান। একটি KVM হলো কী/ভ্যালু স্ট্রিং জোড়ের একটি কাস্টম সংগ্রহ, যা এনক্রিপ্টেড বা আনএনক্রিপ্টেড হতে পারে। এখানে দুটি উদাহরণ দেওয়া হলো:

অন্যান্য ধরণের পার্সিস্টেন্স সম্পর্কে জানতে, “Adding caching and persistence” দেখুন।

KVM পরিস্থিতি

এখানে এমন কিছু পরিস্থিতি উল্লেখ করা হলো যেখানে KVM কাজে আসে:

  • আপনার একটি এপিআই প্রক্সি আছে, যেটিকে একটি টেস্ট এনভায়রনমেন্টে একটি টার্গেট (বা সার্ভিস কলআউট) ইউআরএল এবং একটি প্রোডাকশন এনভায়রনমেন্টে আরেকটি টার্গেট ইউআরএল কল করতে হয়। আপনার প্রক্সিতে ইউআরএল হার্ড-কোড করার পরিবর্তে, আপনি প্রক্সিকে দিয়ে এটি কোন এনভায়রনমেন্টে আছে তা শনাক্ত করাতে পারেন, সংশ্লিষ্ট কী ভ্যালু ম্যাপ অপারেশনস পলিসিটি এক্সিকিউট করতে পারেন এবং আপনার তৈরি করা কেভিএমগুলোর (KVM) একটি থেকে সঠিক টার্গেট ইউআরএলটি সংগ্রহ করতে পারেন। এবং পরবর্তীতে, যদি আপনার এক বা উভয় টার্গেট পরিবর্তিত হয়, আপনি কেবল নতুন ইউআরএলগুলো দিয়ে কেভিএমগুলো আপডেট করে দেবেন। প্রক্সিটি নতুন ভ্যালুগুলো গ্রহণ করে নেয় এবং প্রক্সি রিডিপ্লয়মেন্টের কোনো প্রয়োজন হয় না।
  • আপনি ক্রেডেনশিয়াল, প্রাইভেট কী, বা টোকেন সংরক্ষণ করতে চান—যেমন বাহ্যিক পরিষেবার জন্য টোকেন, OAuth টোকেন তৈরি করার জন্য প্রয়োজনীয় ক্রেডেনশিয়াল, অথবা এনক্রিপশন বা JSON ওয়েব টোকেন (JWT) সাইনিং-এর জন্য জাভা কলআউট বা জাভাস্ক্রিপ্টে ব্যবহৃত প্রাইভেট কী। অনুরোধে ক্রেডেনশিয়াল, কী, বা টোকেন পাস করার পরিবর্তে, অথবা আপনার প্রক্সি লজিকে সেগুলোকে হার্ড-কোড করার পরিবর্তে, আপনি সেগুলোকে একটি KVM-এ (সর্বদা এনক্রিপ্টেড) সংরক্ষণ করতে পারেন এবং যেসব টার্গেটের প্রয়োজন, তাদের কলে ডায়নামিকভাবে পুনরুদ্ধার করতে পারেন।

আপনি আরও এমন পরিস্থিতি খুঁজে পাবেন যেখানে কী/ভ্যালু স্ট্রিং পেয়ার সংরক্ষণ করা দরকারি। সাধারণভাবে, নিম্নলিখিত ক্ষেত্রে KVM ব্যবহার করার কথা বিবেচনা করুন:

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

KVM-এর পরিধি আছে

স্কোপ মানে হলো 'যেখানে একটি KVM পাওয়া যায়'। KVM-গুলো নিম্নলিখিত স্কোপগুলোতে তৈরি করা যেতে পারে: organization , environment , এবং apiproxy

উদাহরণস্বরূপ, যদি একটি KVM-এ শুধুমাত্র একটি API প্রক্সির ডেটার প্রয়োজন হয়, তাহলে আপনি KVM-টি apiproxy স্কোপে তৈরি করতে পারেন, যেখানে কেবল সেই API প্রক্সিটিই ডেটা অ্যাক্সেস করতে পারবে।

অথবা আপনি হয়তো চাইবেন আপনার টেস্ট এনভায়রনমেন্টের সমস্ত এপিআই প্রক্সি একটি কী-ভ্যালু ম্যাপ অ্যাক্সেস করতে পারুক, সেক্ষেত্রে আপনাকে এনভায়রনমেন্ট স্কোপে একটি কী-ভ্যালু ম্যাপ তৈরি করতে হবে। 'prod' এনভায়রনমেন্টে ডেপ্লয় করা প্রক্সিগুলো 'test' এনভায়রনমেন্ট স্কোপের KVM-গুলো অ্যাক্সেস করতে পারে না। আপনি যদি প্রোডাকশনেও একই KVM কীগুলো উপলব্ধ রাখতে চান, তাহলে 'prod' এনভায়রনমেন্ট স্কোপে একটি প্যারালাল KVM তৈরি করুন।

আপনি যদি চান যে সমস্ত এনভায়রনমেন্টের সমস্ত প্রক্সি একই KVM অ্যাক্সেস করুক, তাহলে KVM-টি organization স্কোপে তৈরি করুন।

এনক্রিপ্টেড KVM সম্পর্কে

এনক্রিপ্টেড KVM-গুলো Apigee দ্বারা তৈরি একটি AES-128 সাইফার কী দিয়ে এনক্রিপ্ট করা হয়। একটি KVM এনক্রিপ্ট করতে ব্যবহৃত কী-টি KVM-টির স্কোপে সংরক্ষিত থাকে। উদাহরণস্বরূপ, একটি অর্গানাইজেশনের মধ্যে, এনভায়রনমেন্ট স্কোপে আপনার তৈরি করা সমস্ত এনক্রিপ্টেড KVM একই এনভায়রনমেন্ট-স্কোপড কী ব্যবহার করে তৈরি করা হয়।

Edge নিম্নলিখিত উপায়ে এনক্রিপ্ট করা মান প্রদর্শন করে। (এনক্রিপ্ট করা KVM তৈরি করার তথ্যের জন্য ‘KVM পরিচালনা ও ব্যবহার’ দেখুন।)

এজ ইউআই

এনক্রিপ্টেড কী-ভ্যালু ম্যাপ UI-তে মানগুলিকে অ্যাস্টারিস্ক (*****) দিয়ে মাস্ক করে প্রদর্শন করে। উদাহরণস্বরূপ:

ম্যানেজমেন্ট এপিআই

ম্যানেজমেন্ট এপিআই-তে, এনক্রিপ্ট করা মানগুলো মাস্কড অবস্থায় ফেরত দেওয়া হয়। নিচে একটি Get এনক্রিপ্টেড KVM কলের নমুনা ম্যানেজমেন্ট এপিআই রেসপন্স দেওয়া হলো:

{
  "encrypted": true,
  "entry": [
    {
      "name": "Key1",
      "value": "*****"
    },
    {
      "name": "Key2",
      "value": "*****"
    }
  ],
  "name": "secretMap"
}

ট্রেস এবং ডিবাগ

যখন আপনি এনক্রিপ্টেড KVM ভ্যালু পুনরুদ্ধার করতে Key Value Map Operations পলিসি ব্যবহার করেন, তখন ভ্যালুটি সংরক্ষণ করার জন্য আপনাকে একটি ভেরিয়েবলের নাম সরবরাহ করতে হয়। একটি এনক্রিপ্টেড ভ্যালু পেতে, আপনাকে ভেরিয়েবলের নামের আগে " private. " প্রিফিক্সটি যোগ করতে হবে, যা KVM কী/ভ্যালুগুলোকে ট্রেস এবং ডিবাগ সেশনে প্রদর্শিত হওয়া থেকে বিরত রাখে।

সীমা

যেসব প্রতিষ্ঠানে কোর পারসিস্টেন্স সার্ভিসেস (সিপিএস) সক্রিয় করা আছে:

  • KVM নাম/শনাক্তকারীটি কেস-সেনসিটিভ।
  • কী-সাইজ ২ কিলোবাইটে সীমাবদ্ধ।
  • মানের আকার ১০ কিলোবাইটে সীমাবদ্ধ।

Apigee Edge for Private Cloud-এর ক্ষেত্রে, প্রতিটি KVM-এর সাইজ ১৫ মেগাবাইটের বেশি হওয়া উচিত নয় (এটি হলো কী এবং ভ্যালুগুলোর সম্মিলিত সাইজ)। এই সীমা অতিক্রম করলে, Apigee Edge for Private Cloud একটি এরর দেখায়। আপনার KVM-গুলোর সাইজ নির্ধারণ করতে, আপনি nodetool cfstats কমান্ডটি ব্যবহার করতে পারেন।

বড় আকারের KVM-এর কারণে পারফরম্যান্সের অবনতি হতে পারে। ফলে, পারফরম্যান্স উন্নত করার জন্য বড়, একক KVM-গুলোকে ছোট ছোট অংশে বিভক্ত করা উচিত।

কেভিএম পরিচালনা এবং ব্যবহার

আপনি বিভিন্ন উপায়ে KVM তৈরি, পরিচালনা এবং ব্যবহার করতে পারেন। এই বিভাগে এনক্রিপ্টেড এবং আনএনক্রিপ্টেড উভয় প্রকার KVM তৈরি ও পুনরুদ্ধার করার বিভিন্ন বিকল্প বর্ণনা করা হয়েছে।

KVM তৈরি এবং আপডেট করা

আপনি নিম্নলিখিত উপায়ে KVM তৈরি এবং আপডেট করতে পারেন:

  • কী ভ্যালু ম্যাপ অপারেশন নীতি (কোনো এনক্রিপশন নেই)

    আপনার এপিআই প্রক্সি দ্বারা রানটাইমে KVM তৈরি এবং আপডেট করার জন্য, ' Key Value Map Operations' পলিসিটি ব্যবহার করুন। (এই পলিসিতে, আপনি প্যারেন্ট এলিমেন্টের ' mapIdentifier ' অ্যাট্রিবিউটে KVM-এর নামটি উল্লেখ করেন।)

    <InitialEntries> এলিমেন্টটি আপনাকে UI-তে পলিসি সেভ করার সাথে সাথেই অথবা API প্রক্সি ডেপ্লয় করার সাথে সাথেই (যদি আপনি এটি অফলাইনে তৈরি করে থাকেন) একটি নতুন KVM-এ বেসলাইন এন্ট্রির একটি সেট তৈরি ও পূরণ করার সুযোগ দেয়। পলিসিতে ভ্যালু পরিবর্তিত হলে, বিদ্যমান ভ্যালুগুলো ওভাররাইট হয়ে যায়। যেকোনো নতুন কী/ভ্যালু বিদ্যমান কী/ভ্যালুগুলোর পাশাপাশি বিদ্যমান KVM-এ যুক্ত হয়ে যায়।

    <Put> এলিমেন্টটি একটি নতুন KVM তৈরি করে, যদি আগে থেকে কোনোটি বিদ্যমান না থাকে, এবং এটি এক বা একাধিক ভ্যালু সহ একটি কী (key) তৈরি করে। যদি KVM-টি আগে থেকেই বিদ্যমান থাকে, তাহলে কী/ভ্যালুগুলো যোগ করা হয় (অথবা কী-টি আগে থেকে বিদ্যমান থাকলে আপডেট করা হয়)। একটি KVM পলিসিতে আপনি একাধিক <Put> এলিমেন্ট ব্যবহার করতে পারেন।

  • ম্যানেজমেন্ট এপিআই

    ম্যানেজমেন্ট এপিআই আপনার এপিআই প্রক্সিতে রানটাইম চলাকালীন নয়, বরং একজন প্রশাসক হিসেবে কেভিএম নিয়ে কাজ করার জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, আপনার একটি অভ্যন্তরীণ স্ক্রিপ্ট থাকতে পারে যা একটি পরীক্ষামূলক পরিবেশে কেভিএম মুছে ফেলতে এবং পুনরায় তৈরি করতে ম্যানেজমেন্ট এপিআই ব্যবহার করে, অথবা আপনি সমস্ত প্রক্সির জন্য একটি কেভিএম-এর কোনো কী-এর মান রিসেট করতে চাইতে পারেন। (কেভিএম-এর রানটাইম ম্যানিপুলেশনের জন্য, আপনার প্রক্সিতে ‘ Key Value Map Operations’ পলিসি ব্যবহার করুন)।

    Key/Value Maps ম্যানেজমেন্ট API আপনাকে সকল স্কোপে (organization, environment, এবং apiproxy) এনক্রিপ্টেড KVM এবং কী/ভ্যালু তৈরি, আপডেট ও ডিলিট করার সুবিধা দেয়।

    ম্যানেজমেন্ট এপিআই ব্যবহার করে একটি এনক্রিপ্টেড KVM তৈরি করতে, JSON পেলোডে "encrypted" : "true" যোগ করুন। আপনি শুধুমাত্র KVM তৈরি করার সময়ই তা এনক্রিপ্ট করতে পারবেন। আপনি কোনো বিদ্যমান KVM এনক্রিপ্ট করতে পারবেন না।

  • ম্যানেজমেন্ট UI

    Edge ম্যানেজমেন্ট UI-তে, আপনি এনভায়রনমেন্ট-স্কোপড KVM তৈরি এবং আপডেট করতে পারেন, যা UI-তে প্রদর্শিত KVM-এর একমাত্র স্কোপ। রানটাইমে API প্রক্সিগুলির জন্য KVM ডেটা ম্যানুয়ালি পরিচালনা করার জন্য ম্যানেজমেন্ট UI একটি ভালো উপায়। আরও তথ্যের জন্য ‘এনভায়রনমেন্ট কী-ভ্যালু ম্যাপ তৈরি এবং সম্পাদনা’ দেখুন।

কেভিএম পুনরুদ্ধার করা

আপনি এনক্রিপ্টেড এবং আনএনক্রিপ্টেড কী-ভ্যালু ম্যাপ একই পদ্ধতিতে পুনরুদ্ধার করেন, তবে 'কী ভ্যালু ম্যাপ অপারেশনস' পলিসি ব্যবহার করে পুনরুদ্ধার করার সময় একটি সামান্য পার্থক্য থাকে।

  • পলিসি : এনক্রিপ্টেড এবং আনএনক্রিপ্টেড KVM পুনরুদ্ধার করতে Key Value Map Operations পলিসিতে <Get> এলিমেন্টটি ব্যবহার করুন। পলিসি ব্যবহার করে এনক্রিপ্টেড ভ্যালু পুনরুদ্ধার করার ক্ষেত্রে একটি সামান্য পার্থক্য রয়েছে, যেখানে আপনাকে অবশ্যই পুনরুদ্ধার করা ভ্যালুটি ধারণকারী ভেরিয়েবলের নামের আগে একটি " private. " প্রিফিক্স যোগ করতে হবে, যেমনটি রেফারেন্স টপিকের Get অপারেশন বিভাগে বর্ণনা করা হয়েছে। আপনি যখন API প্রক্সি ডিবাগ করেন, তখন এই প্রিফিক্সটি Trace এবং ডিবাগ সেশন থেকে ভ্যালুটি গোপন রাখে।
  • ম্যানেজমেন্ট এপিআই : প্রশাসনিক ব্যবস্থাপনার উদ্দেশ্যে, আপনি KVM এবং কী/ভ্যালু পেতে এনভায়রনমেন্ট কী-ভ্যালু ম্যাপ তৈরি ও সম্পাদনা করার পদ্ধতিটি ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনি যদি JSON ডেফিনিশনগুলো সংগ্রহ ও সংরক্ষণ করে KVM-গুলোর ব্যাকআপ নিতে চান, তবে ম্যানেজমেন্ট এপিআই ব্যবহার করুন। তবে মনে রাখবেন, এনক্রিপ্টেড ভ্যালুগুলো এপিআই রেসপন্সে ***** হিসেবে প্রদর্শিত হয়।
  • ম্যানেজমেন্ট UI : আপনি ম্যানেজমেন্ট UI-তে APIs > Environment Configuration > Key Value Maps (ক্লাসিক এজ) অথবা Admin > Environments > Key Value Maps (নিউ এজ)-এ গিয়ে আপনার এনভায়রনমেন্ট-স্কোপড KVM-গুলো দেখতে পারেন।

KVM উদাহরণ

একটি URL-এ মান পূরণ করতে KVM ব্যবহারের উদাহরণের জন্য, “পরিবেশ অনুযায়ী KVM দিয়ে টার্গেট URL টেমপ্লেটাইজ করুন” দেখুন।