আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন। তথ্য
এমন কিছু সময় আসে যখন আপনি রানটাইমে রিট্রিভ করার জন্য ডেটা স্টোর করতে চান—এক্সপায়ার না হওয়া ডেটা যা আপনার API প্রক্সি লজিকে হার্ড-কোড করা উচিত নয়। এর জন্য কী-ভ্যালু ম্যাপ (KVM) আদর্শ। A KVM হল কী/ভ্যালু স্ট্রিং পেয়ারের কাস্টম কালেকশন যা এনক্রিপ্ট করা বা এনক্রিপ্ট না করা হতে পারে। এখানে দুটি উদাহরণ দেওয়া হল:

অন্যান্য ধরনের পারসিস্টেন্স সম্পর্কে জানতে, ক্যাশিং ও পারসিস্টেন্স যোগ করা দেখুন।
KVM পরিস্থিতি
এখানে এমন কিছু পরিস্থিতি দেওয়া হল যেখানে KVM কাজে লাগে:
- আপনার কাছে একটি API প্রক্সি আছে যা একটি টেস্ট এনভায়রনমেন্টে একটি টার্গেট (বা সার্ভিস কলআউট) URL এবং প্রোডাকশন এনভায়রনমেন্টে অন্য একটি টার্গেট URL কল করতে হবে। আপনার প্রক্সিতে URL হার্ড-কোড করার পরিবর্তে, প্রক্সিটি কোন এনভায়রনমেন্টে আছে তা শনাক্ত করতে, সংশ্লিষ্ট কী ভ্যালু ম্যাপ অপারেশন নীতি প্রয়োগ করতে এবং আপনার তৈরি করা KVM-এর কোনও একটি থেকে সঠিক টার্গেট URL রিট্রিভ করতে পারেন। পরে, আপনার টার্গেটগুলির মধ্যে একটি বা দুটিই পরিবর্তিত হলে, আপনি নতুন URL সহ KVM আপডেট করুন। প্রক্সি নতুন ভ্যালু বেছে নেয় এবং প্রক্সি আবার ডিপ্লয় করার প্রয়োজন হয় না।
- আপনি ক্রেডেনশিয়াল, ব্যক্তিগত কী বা টোকেন—যেমন, এক্সটার্নাল পরিষেবার টোকেন, OAuth টোকেন জেনারেট করার জন্য প্রয়োজনীয় ক্রেডেনশিয়াল বা এনক্রিপশন বা JSON ওয়েব টোকেন (JWT) সই করার জন্য Java কলআউট বা JavaScript-এ ব্যবহৃত ব্যক্তিগত কী স্টোর করতে চান। অনুরোধে ক্রেডেনশিয়াল, কী বা টোকেন পাস করা অথবা আপনার প্রক্সি লজিকে সেগুলি হার্ড-কোড করার পরিবর্তে, আপনি সেগুলি KVM-এ (সর্বদা এনক্রিপ্ট করা) সেভ করতে এবং যে টার্গেটে সেগুলি প্রয়োজন সেখানে কল করার সময় ডায়নামিক পদ্ধতিতে সেগুলি রিট্রিভ করতে পারেন।
আপনি অন্যান্য পরিস্থিতিও খুঁজে পাবেন যেখানে কী/ভ্যালু স্ট্রিং পেয়ারের স্টোরেজ কাজে লাগে। সাধারণভাবে, এইসব ক্ষেত্রে KVM ব্যবহার করার কথা বিবেচনা করুন:
- আপনার কোডের নির্দিষ্ট জায়গায় রানটাইমে আলাদা আলাদা ভ্যালু প্রয়োজন।
- হার্ড-কোডিং না করেই সংবেদনশীল ডেটা পাস করতে হবে।
- আপনি এমন ভ্যালু স্টোর করতে চান যেগুলির মেয়াদ শেষ হয় না, যেমন ক্যাশে হতে পারে।
KVM-এর সুযোগ আছে
স্কোপ বলতে "যেখানে KVM উপলভ্য" তা বোঝানো হয়। KVM নিম্নলিখিত স্কোপে তৈরি করা যেতে পারে:
organization, environment এবং apiproxy.
যেমন, যদি শুধুমাত্র একটি API প্রক্সি KVM-এ ডেটা চায়, তাহলে আপনি
apiproxy স্কোপে KVM তৈরি করতে পারেন, যেখানে শুধুমাত্র সেই API প্রক্সি ডেটা অ্যাক্সেস করতে পারবে।
অথবা, আপনি হয়ত চাইবেন যে আপনার টেস্ট এনভায়রনমেন্টের সব API প্রক্সি একটি কী-ভ্যালু ম্যাপ অ্যাক্সেস করতে পারুক। এই ক্ষেত্রে, আপনাকে এনভায়রনমেন্ট স্কোপে একটি কী-ভ্যালু ম্যাপ তৈরি করতে হবে। "prod" এনভায়রনমেন্টে ডেপ্লয় করা প্রক্সি "test" এনভায়রনমেন্ট স্কোপে KVM অ্যাক্সেস করতে পারবে না। আপনি প্রোডাকশনে একই KVM কী উপলভ্য করতে চাইলে, "prod" এনভায়রনমেন্টের জন্য সমান্তরাল KVM স্কোপ তৈরি করুন।
আপনি যদি চান যে সব এনভায়রনমেন্টের সব প্রক্সি একই KVM অ্যাক্সেস করুক, তাহলে
organization স্কোপে KVM তৈরি করুন।
এনক্রিপটেড KVM সম্পর্কে
এনক্রিপ্টেড KVM, Apigee-এর তৈরি AES-128 সাইফার কী দিয়ে এনক্রিপ্ট করা হয়। KVM এনক্রিপ্ট করতে যে কী ব্যবহার করা হয় সেটি KVM-এর স্কোপে সেভ করা থাকে। যেমন, কোনও সংস্থার মধ্যে, এনভায়রনমেন্ট স্কোপে আপনার তৈরি করা সব এনক্রিপ্টেড KVM একই এনভায়রনমেন্ট-স্কোপড কী ব্যবহার করে তৈরি করা হয়।
Edge নিম্নলিখিত উপায়ে এনক্রিপ্ট করা ভ্যালু ডিসপ্লে করে। (এনক্রিপ্ট করা KVM তৈরি করার ব্যাপারে তথ্য পেতে KVM ম্যানেজ করা ও ব্যবহার করা দেখুন।)
Edge UI
এনক্রিপ্ট করা কী ভ্যালু ম্যাপ, UI-তে অ্যাস্টেরিস্ক (*****) দিয়ে মাস্ক করা ভ্যালু দেখায়। যেমন:

ম্যানেজমেন্ট API
ম্যানেজমেন্ট API-তে, এনক্রিপ্ট করা ভ্যালু মাস্ক করা অবস্থায় রিটার্ন করা হয়। এনক্রিপটেড KVM কল পাওয়ার পরে API-এর দেওয়া উত্তর ম্যানেজমেন্টের নমুনা নিচে দেওয়া হল:
{
"encrypted": true,
"entry": [
{
"name": "Key1",
"value": "*****"
},
{
"name": "Key2",
"value": "*****"
}
],
"name": "secretMap"
}ট্রেস ও ডিবাগ করা
এনক্রিপ্ট করা KVM ভ্যালু পেতে আপনি কী ভ্যালু ম্যাপ অপারেশন নীতি
ব্যবহার করলে, ভ্যালু সেভ করার জন্য আপনাকে একটি ভেরিয়েবলের নাম
দিতে হবে। এনক্রিপ্ট করা ভ্যালু পেতে, আপনাকে ভেরিয়েবলের নামের আগে "private." প্রিফিক্স যোগ করতে হবে।
এটি KVM কী/ভ্যালুকে ট্রেস ও ডিবাগ সেশনে দেখাতে বাধা দেয়।
সীমা
যেসব প্রতিষ্ঠানে কোর পারসিস্টেন্স সার্ভিস (CPS) চালু আছে:
- KVM নাম/আইডেন্টিফায়ারে ছোট ও বড় হাতের অক্ষরের মধ্যে পার্থক্য করা হয়।
- কী সাইজ ২ কেবি পর্যন্ত সীমিত।
- ভ্যালুর সাইজ ১০ কেবির মধ্যে সীমিত।
প্রাইভেট ক্লাউডের জন্য Apigee Edge-এর ক্ষেত্রে, প্রতিটি KVM-এর সাইজ ১৫ এমবির বেশি হওয়া উচিত নয় (এটি হল কী ও ভ্যালুর সম্মিলিত সাইজ)। এই সীমা অতিক্রম করলে, প্রাইভেট ক্লাউডের জন্য Apigee Edge একটি সমস্যার মেসেজ দেখায়। আপনার KVM-এর সাইজ নির্ধারণ করতে, আপনি nodetool cfstats কমান্ড ব্যবহার করতে পারবেন।
KVM-এর সাইজ বড় হলে পারফর্ম্যান্স খারাপ হতে পারে। এর ফলে, পারফর্ম্যান্স উন্নত করতে, একক বড় KVM-কে ছোট ছোট KVM-এ ভাগ করে নেওয়া উচিত।
KVM ম্যানেজ ও ব্যবহার করা
আপনি বিভিন্ন উপায়ে KVM তৈরি, ম্যানেজ ও ব্যবহার করতে পারবেন। এই বিভাগে এনক্রিপ্ট করা ও এনক্রিপ্ট না করা, উভয় ধরনের KVM তৈরি ও তারপরে তা রিট্রিভ করার বিভিন্ন বিকল্পের বিবরণ দেওয়া আছে।
KVM তৈরি ও আপডেট করা
আপনি নিম্নলিখিত উপায়ে KVM তৈরি ও আপডেট করতে পারবেন:
-
কী ভ্যালু ম্যাপ অপারেশন নীতি (কোনও এনক্রিপশন নেই)
আপনার API প্রক্সি দ্বারা রানটাইম KVM তৈরি ও আপডেট করার জন্য, কী ভ্যালু ম্যাপ অপারেশন নীতি ব্যবহার করুন। (নীতিতে, আপনি KVM-এর নাম পেরেন্ট এলিমেন্টের
mapIdentifierঅ্যাট্রিবিউটে উল্লেখ করেন।)<InitialEntries>এলিমেন্ট আপনাকে UI-তে নীতি সেভ করা বা API প্রক্সি (আপনি এটি অফলাইনে ডেভেলপ করে থাকলে) ডেপ্লয় করার সাথে সাথেই নতুন KVM-এ এন্ট্রি বেসলাইন সেট তৈরি ও পপুলেট করতে দেয়। নীতিতে ভ্যালু পরিবর্তন করা হলে, আগে থেকে থাকা ভ্যালু ওভাররাইট করা হয়। আগে থেকে থাকা কী/ভ্যালুর সাথে যেকোনও নতুন কী/ভ্যালু আগে থেকে থাকা KVM-এ যোগ করা হয়। আগে থেকে থাকা কী/ভ্যালু।<Put>এলিমেন্ট একটি নতুন KVM তৈরি করে যদি সেটি আগে থেকে না থাকে এবং এটি এক বা একাধিক ভ্যালু সহ একটি কী তৈরি করে। KVM আগে থেকেই থাকলে, কী/ভ্যালু যোগ করা হয় (অথবা কী আগে থেকেই থাকলে আপডেট করা হয়)। আপনি KVM নীতিতে একাধিক<Put>এলিমেন্ট ব্যবহার করতে পারবেন। -
ম্যানেজমেন্ট API
ম্যানেজমেন্ট API, আপনার API প্রক্সিতে রানটাইম চলাকালীন নয় বরং একজন অ্যাডমিনিস্ট্রেটর হিসেবে KVM-এর সাথে কাজ করার জন্য তৈরি করা হয়েছে। যেমন, আপনার কাছে ইন্টার্নাল স্ক্রিপ্ট থাকতে পারে যা ম্যানেজমেন্ট API ব্যবহার করে টেস্ট এনভায়রনমেন্টে KVM মুছে দেয় ও আবার তৈরি করে অথবা আপনি কোনও কী-এর ভ্যালু KVM-এ রিসেট করতে পারেন যাতে সব প্রক্সি তা পিক-আপ করতে পারে। (KVM-এর রানটাইম ম্যানিপুলেশনের জন্য, আপনার প্রক্সিতে কী ভ্যালু ম্যাপ অপারেশন নীতি ব্যবহার করুন)।
কী/ভ্যালু ম্যাপ ম্যানেজমেন্ট API আপনাকে এনক্রিপ্ট করা KVM এবং কী/ভ্যালু তৈরি, আপডেট ও মুছে দিতে দেয় সব স্কোপে (সংস্থা, এনভায়রনমেন্ট ও apiproxy)।
ম্যানেজমেন্ট API-এর মাধ্যমে এনক্রিপ্ট করা KVM তৈরি করতে, JSON পেলোডে
"encrypted" : "true"যোগ করুন। আপনি KVM তখনই এনক্রিপ্ট করতে পারবেন যখন সেগুলি তৈরি করবেন। আগে থেকে থাকা কোনও KVM এনক্রিপ্ট করতে পারবেন না। -
ম্যানেজমেন্ট UI
Edge ম্যানেজমেন্ট UI-তে, আপনি এনভায়রনমেন্ট-স্কোপড KVM তৈরি ও আপডেট করতে পারবেন, যা হল KVM-এর একমাত্র স্কোপ যা UI-তে দেখা যায়। ম্যানেজমেন্ট UI হল রানটাইমে API প্রক্সির জন্য KVM ডেটা ম্যানুয়ালি অ্যাডমিনিস্টার করার একটি ভাল উপায়। আরও তথ্যের জন্য এনভায়র্নমেন্ট কী ভ্যালু ম্যাপ তৈরি ও এডিট করা লিঙ্ক দেখুন।
KVM ফিরিয়ে আনা হচ্ছে
আপনি এনক্রিপ্ট করা ও এনক্রিপ্ট না করা কী-ভ্যালু ম্যাপ একই পদ্ধতিতে রিট্রিভ করেন, তবে কী-ভ্যালু ম্যাপ অপারেশন নীতি ব্যবহার করে রিট্রিভ করার সময় সামান্য পার্থক্য হয়।
- নীতি: এনক্রিপ্ট করা ও এনক্রিপ্ট না করা KVM রিট্রিভ করতে
কী ভ্যালু ম্যাপ অপারেশন নীতিতে
<Get>এলিমেন্ট ব্যবহার করুন। একটি সামান্য পার্থক্য হল নীতি সহ এনক্রিপ্ট করা ভ্যালু রিট্রিভ করা, যেখানে আপনাকে অবশ্যই রিট্রিভ করা ভ্যালু ধারণকারী ভেরিয়েবলের নামের আগে "private." প্রিফিক্স যোগ করতে হবে, যেমনটি রেফারেন্স টপিকের গেট অপারেশন বিভাগে বর্ণিত আছে। আপনি API প্রক্সি ডিবাগ করার সময়, সেই উপসর্গটি Trace এবং debug সেশন থেকে ভ্যালু আড়াল করে। - ম্যানেজমেন্ট API: প্রশাসনিক ম্যানেজমেন্টের উদ্দেশ্যে, আপনি KVM ও কী/ভ্যালু পেতে এনভায়রনমেন্ট কী ভ্যালু ম্যাপ তৈরি ও এডিট করা ব্যবহার করতে পারবেন। যেমন, আপনি যদি JSON সংজ্ঞা পেয়ে ও স্টোর করে KVM-এর ব্যাক-আপ নিতে চান, তাহলে ম্যানেজমেন্ট API ব্যবহার করুন। তবে মনে রাখবেন, API-এর উত্তরে এনক্রিপ্ট করা ভ্যালু ***** হিসেবে দেখানো হয়।
- ম্যানেজমেন্ট UI: আপনি ম্যানেজমেন্ট UI-তে API > এনভায়রনমেন্ট কনফিগারেশন > কী ভ্যালু ম্যাপ (ক্লাসিক Edge) অথবা অ্যাডমিন > এনভায়রনমেন্ট > কী ভ্যালু ম্যাপ (নতুন Edge) বিকল্পে গিয়ে আপনার এনভায়রনমেন্ট-স্কোপ করা KVM দেখতে পারবেন।
KVM-এর উদাহরণ
URL-এ ভ্যালু অটো-ফিল করতে KVM ব্যবহার করার উদাহরণ দেখতে, এনভায়রনমেন্ট অনুযায়ী KVM-এর মাধ্যমে টার্গেট URL টেমপ্লেট হিসেবে ব্যবহার করুন দেখুন।