KeyValueMapOperations নীতি

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

এজ UI থেকে মূল মান মানচিত্র অপারেশন আইকন

কি

Apigee Edge-এ উপলব্ধ একটি কী ভ্যালু ম্যাপ (KVM) স্টোরে নীতি-ভিত্তিক অ্যাক্সেস প্রদান করে। কী/মান জোড়া সংরক্ষণ করা যেতে পারে, পুনরুদ্ধার করা যেতে পারে, এবং নামযুক্ত বিদ্যমান মানচিত্র থেকে মুছে ফেলা যেতে পারে KeyValueMapOperations নীতিগুলি কনফিগার করে যা PUT, GET, বা DELETE অপারেশনগুলি নির্দিষ্ট করে৷ (এই ক্রিয়াকলাপগুলির মধ্যে অন্তত একটি নীতি দ্বারা সঞ্চালিত হতে হবে।)

ভিডিও

KVM সম্পর্কে আরও জানতে নিম্নলিখিত ভিডিওগুলি দেখুন।

ভিডিও বর্ণনা
কেন মূল মান মানচিত্র? আপনার কেন কেভিএম দরকার এবং সেগুলি কীভাবে কাজ করে তা জানুন।
UI ব্যবহার করে KVM তৈরি করুন এবং রানটাইমে KVM পুনরুদ্ধার করুন একটি KVM তৈরি করুন, একটি KVM নীতি ব্যবহার করে এর মান পুনরুদ্ধার করুন এবং ফ্লো ভেরিয়েবল ব্যবহার করে API অনুরোধে মানটি ইনজেক্ট করুন।
API রানটাইমে একটি KVM তৈরি এবং আপডেট করুন একটি KVM নীতি ব্যবহার করে API রানটাইমে একটি KVM তৈরি করুন।
কর্মক্ষমতা বাড়াতে ক্যাশে KVM ডেটা ক্যাশে করে KVM নীতির কর্মক্ষমতা উন্নত করুন।
এনক্রিপ্ট করা KVM স্টোর করুন একটি এনক্রিপ্ট করা বিন্যাসে KVM-এ সংবেদনশীল তথ্য সংরক্ষণ করুন এবং KVM নীতি এবং ব্যক্তিগত ভেরিয়েবল ব্যবহার করে রানটাইমে মান পুনরুদ্ধার করুন।
KVM সুযোগ ব্যবহার করে অ্যাক্সেস পরিচালনা করুন KVM পলিসি স্কোপ অ্যাট্রিবিউট ব্যবহার করে সংগঠন, পরিবেশ, API প্রক্সি বা API প্রক্সি রিভিশনে KVM সীমাবদ্ধ করুন।
API রানটাইমে KVM এন্ট্রি মুছুন KVM পলিসি ডিলিট অপারেশন ব্যবহার করে API রানটাইমে KVM এন্ট্রি মুছুন।

নমুনা

আক্ষরিক সহ KVM রাখুন

যখন নিম্নলিখিত নীতি চলে, তখন এটি FooKVM নামে একটি এনক্রিপ্ট করা KVM তৈরি করে, তারপর FooKey_1 নামের একটি কী তৈরি করে যেখানে দুটি মান লিটারাল স্ট্রিং foo এবং bar দিয়ে সেট করা হয় (ভেরিয়েবল থেকে বের করা মানগুলির সাথে সেট করা হয় না)। আপনি যখন পরবর্তী উদাহরণে কীটি GET , আপনি যে মানটি চান তা পুনরুদ্ধার করতে আপনি একটি সূচক নম্বর নির্দিষ্ট করেন।

<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="FooKVM" mapIdentifier="FooKVM">
  <DisplayName>FooKVM</DisplayName>
  <ExpiryTimeInSecs>86400</ExpiryTimeInSecs>
  <Scope>environment</Scope>
  <Put>
    <Key>
      <Parameter>FooKey_1</Parameter>
    </Key>
    <Value>foo</Value>
    <Value>bar</Value>
  </Put>
</KeyValueMapOperations>

লক্ষ্য করুন যে সুযোগটি "পরিবেশ"। তার মানে আপনি APIs > পরিবেশ কনফিগারেশন > কী মান মানচিত্র এর অধীনে ব্যবস্থাপনা UI-তে KVM দেখতে পারেন। সেই পৃষ্ঠায় দেখানো KVM-গুলি সবই নির্বাচিত পরিবেশে স্কোপ করা হয়।

একটি আক্ষরিক থেকে KVM পান

এই নীতিটি পূর্ববর্তী উদাহরণ থেকে FooKVM মানচিত্র দেখে, FooKey_1 কী থেকে দ্বিতীয় মান (index="2") পায় এবং এটিকে foo_variable নামক একটি ভেরিয়েবলে সংরক্ষণ করে।

<KeyValueMapOperations mapIdentifier="FooKVM" async="false" continueOnError="false" enabled="true" name="GetKVM">
  <DisplayName>GetKVM</DisplayName>
  <ExpiryTimeInSecs>86400</ExpiryTimeInSecs>
  <Scope>environment</Scope>
  <Get assignTo="foo_variable" index="2">
    <Key>
      <Parameter>FooKey_1</Parameter>
    </Key>
  </Get>
</KeyValueMapOperations>

একটি ভেরিয়েবল সহ KVM রাখুন

একটি দরকারী কী মান মানচিত্রের একটি সাধারণ উদাহরণ হল একটি URL সংক্ষিপ্তকরণ পরিষেবা৷ মূল মান মানচিত্রটি সংক্ষিপ্ত ইউআরএল এবং সংশ্লিষ্ট সম্পূর্ণ ইউআরএল সংরক্ষণ করার জন্য কনফিগার করা যেতে পারে।

এই নীতির নমুনা একটি মূল মান মানচিত্র তৈরি করে। নীতিটি "urlMapper" নামের একটি কী/মান মানচিত্রে দুটি সম্পর্কিত মান সহ একটি কী রাখে।

<KeyValueMapOperations name="putUrl" mapIdentifier="urlMapper">
   <Scope>apiproxy</Scope>
   <Put override="true">
      <Key>
         <Parameter ref="urlencoding.requesturl.hashed"/>
      </Key>
      <Value ref="urlencoding.longurl.encoded"/>
      <Value ref="request.queryparam.url"/>
   </Put>
</KeyValueMapOperations>

এই উদাহরণের কী, urlencoding.requesturl.hashed , একটি কাস্টম ভেরিয়েবলের উদাহরণ। হ্যাশ করা অনুরোধের URL কোড দ্বারা তৈরি করা হবে (উদাহরণস্বরূপ জাভাস্ক্রিপ্ট বা জাভা) এবং তারপর এই ভেরিয়েবলে সংরক্ষণ করা হবে, যেখানে KeyValueMapOperations নীতি এটি অ্যাক্সেস করতে পারে।

প্রতিটি কীর জন্য, requesturl.hashed , দুটি মান সংরক্ষণ করা হয়:

  • urlencoding.longurl.encoded নামের কাস্টম ভেরিয়েবলের বিষয়বস্তু
  • পূর্বনির্ধারিত পরিবর্তনশীল request.queryparam.url এর বিষয়বস্তু

উদাহরণস্বরূপ, যখন নীতি রানটাইমে কার্যকর হয়, তখন ভেরিয়েবলের মান নিম্নরূপ হতে পারে:

  • urlencoding.requesturl.hashed: ed24e12820f2f900ae383b7cc4f2b31c402db1be
  • urlencoding.longurl.encoded: http://tinyurl.com/38lwmlr
  • request.queryparam.url: http://apigee.com

নিম্নলিখিত কী/মান মানচিত্র এবং এন্ট্রি এজ-এর কী/মান স্টোরে তৈরি করা হবে এবং নীতিটি সংযুক্ত API প্রক্সিতে স্কোপ করা হবে:

{
    "entry" :[ 
        {
            "name" : "ed24e12820f2f900ae383b7cc4f2b31c402db1be",
            "value" : "http://tinyurl.com/38lwmlr,http://apigee.com"
        }
    ],
    "name" : "urlMapper"
}

মুছে ফেলা না হওয়া পর্যন্ত এন্ট্রি চলতে থাকবে। কী/মূল্য স্টোর এন্ট্রিগুলি ক্লাউড চলমান এজের উদাহরণ জুড়ে বিতরণ করা হয়।

একটি পরিবর্তনশীল থেকে KVM পান

একটি দরকারী কী মান মানচিত্রের একটি সাধারণ উদাহরণ হল একটি URL 'সংক্ষিপ্তকরণ' পরিষেবা৷ মূল মান মানচিত্রটি সংক্ষিপ্ত ইউআরএল এবং সংশ্লিষ্ট সম্পূর্ণ ইউআরএল সংরক্ষণ করার জন্য কনফিগার করা যেতে পারে।

কী/মান মানচিত্র এন্ট্রির মান পুনরুদ্ধার করতে, যেমন KeyValueMapOperations PUT ট্যাবে আচ্ছাদিত একটি, মূল মান মানচিত্র পেতে একটি নীতি কনফিগার করুন:

<KeyValueMapOperations name="getUrl" mapIdentifier="urlMapper">
   <Scope>apiproxy</Scope>
   <Get assignTo="urlencoding.shorturl" index='1'>
      <Key>
         <Parameter ref="urlencoding.requesturl.hashed"/> 
      </Key>
   </Get>
</KeyValueMapOperations>

যখন এই নীতিটি কার্যকর করা হয়, যদি urlencoding.requesturl.hashed ভেরিয়েবলের মান ed24e12820f2f900ae383b7cc4f2b31c402db1be হয়, তাহলে urlencoding.shorturl নামের কাস্টম ভেরিয়েবলটি http://tinyurl.com/38lwmlr মান দিয়ে সেট করা হবে।

এখন যেহেতু ডেটা পুনরুদ্ধার করা হয়েছে, অন্যান্য নীতি এবং কোড সেই ভেরিয়েবলগুলি থেকে মান বের করে এটি অ্যাক্সেস করতে পারে।

KVM থেকে এনক্রিপ্ট করা মান পান

যদি একটি মূল মান মানচিত্র এনক্রিপ্ট করা হয়, তাহলে assignTo অ্যাট্রিবিউট ভ্যালুতে " private. এই উদাহরণে, ভেরিয়েবল private.encryptedVar কী মান মানচিত্রের foo কী-এর ডিক্রিপ্ট করা মান ধারণ করে। এনক্রিপ্ট করা কী মান মানচিত্র তৈরির বিষয়ে তথ্যের জন্য, কী/মান মানচিত্র ব্যবস্থাপনা API- এর "তৈরি করুন" বিষয়গুলি দেখুন।

<KeyValueMapOperations name="getEncrypted" mapIdentifier="encrypted_map">
   <Scope>apiproxy</Scope>
   <Get assignTo="private.encryptedVar" index='1'>
      <Key>
         <Parameter>foo</Parameter> 
      </Key>
   </Get>
</KeyValueMapOperations>

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


উপাদান রেফারেন্স

উপাদান রেফারেন্স KeyValueMapOperations নীতির উপাদান এবং বৈশিষ্ট্য বর্ণনা করে:

<KeyValueMapOperations async="false" continueOnError="false" 
    enabled="true" name="Key-Value-Map-Operations-1" 
    mapIdentifier="urlMapper" >
   <DisplayName>Key Value Map Operations 1</DisplayName>
   <Scope>environment</Scope>
   <ExpiryTimeInSecs>300</ExpiryTimeInSecs>
   <InitialEntries>
      <Entry>
         <Key>
            <Parameter>key_name_literal</Parameter>
         </Key>
         <Value>value_literal</Value>
      </Entry>
      <Entry>
         <Key>
            <Parameter>variable_name</Parameter>
         </Key>
         <Value>value_1_literal</Value>
         <Value>value_2_literal</Value>
      </Entry>
   </InitialEntries>
   <Put override="false">
      <Key>
         <Parameter>key_name_literal</Parameter>
      </Key>
      <Value ref="variable_name"/>
   </Put>
   <Get assignTo="myvar" index="1">
      <Key>
         <Parameter ref="variable_name"/>
      </Key>
   </Get>
   <Delete>
      <Key>
         <Parameter>key_name_literal</Parameter>
      </Key>
   </Delete>
</KeyValueMapOperations>

<KeyValueMapOperations> বৈশিষ্ট্য

নিম্নলিখিত উদাহরণটি <KeyValueMapOperations> ট্যাগের বৈশিষ্ট্যগুলি দেখায়:

<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="Key-Value-Map-Operations-1" mapIdentifier="map_name">

নিম্নলিখিত সারণীটি <KeyValueMapOperations> ট্যাগের নির্দিষ্ট বৈশিষ্ট্যগুলি বর্ণনা করে:

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি
মানচিত্র শনাক্তকারী

এই নীতি বা ব্যবস্থাপনা UI দ্বারা তৈরি একটি মানচিত্র অ্যাক্সেস করার সময় ব্যবহার করার জন্য একটি শনাক্তকারী নির্দিষ্ট করে৷

KVM নামটি পাবলিক ক্লাউডের জন্য Apigee Edge-এর সাথে কেস সংবেদনশীল । উদাহরণস্বরূপ, foobar FooBar থেকে আলাদা।

আপনি যদি এই বৈশিষ্ট্যটি বাদ দেন, kvmap নামের একটি KVM ব্যবহার করা হয়।

প্রতিষ্ঠান/পরিবেশ/এপিপ্রক্সির একটি সুযোগের মধ্যে, আপনি আপনার নিজের মানচিত্রের নাম নির্দিষ্ট করতে mapIdentifier বৈশিষ্ট্য ব্যবহার করতে পারেন।

N/A ঐচ্ছিক

নিম্নলিখিত সারণী সমস্ত নীতির মূল উপাদানগুলির জন্য সাধারণ বৈশিষ্ট্যগুলি বর্ণনা করে:

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি
name

নীতির অভ্যন্তরীণ নাম। name বৈশিষ্ট্যের মানটিতে অক্ষর, সংখ্যা, স্পেস, হাইফেন, আন্ডারস্কোর এবং পিরিয়ড থাকতে পারে। এই মান 255 অক্ষরের বেশি হতে পারে না।

ঐচ্ছিকভাবে, ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে <DisplayName> উপাদানটি ব্যবহার করুন।

N/A প্রয়োজন
continueOnError

একটি নীতি ব্যর্থ হলে একটি ত্রুটি ফেরত দিতে false সেট করুন৷ এটি বেশিরভাগ নীতির জন্য প্রত্যাশিত আচরণ।

একটি নীতি ব্যর্থ হওয়ার পরেও ফ্লো এক্সিকিউশন চালিয়ে যেতে true সেট করুন৷

মিথ্যা ঐচ্ছিক
enabled

নীতি প্রয়োগ করতে true সেট করুন৷

নীতি বন্ধ করতে false সেট করুন। নীতিটি প্রবাহের সাথে সংযুক্ত থাকলেও তা কার্যকর করা হবে না।

সত্য ঐচ্ছিক
async

এই বৈশিষ্ট্যটি অবমূল্যায়ন করা হয়েছে৷

মিথ্যা অবচয়

<DisplayName> উপাদান

ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে name বৈশিষ্ট্য ছাড়াও ব্যবহার করুন।

<DisplayName>Policy Display Name</DisplayName>
ডিফল্ট

N/A

আপনি এই উপাদানটি বাদ দিলে, নীতির name বৈশিষ্ট্যের মান ব্যবহার করা হবে।

উপস্থিতি ঐচ্ছিক
টাইপ স্ট্রিং

<মুছুন> উপাদান

নির্দিষ্ট কী/মান জোড়া মুছে দেয়। অন্তত একটি <Get> , <Put> , অথবা <Delete> ব্যবহার করতে হবে।

মূল উপাদানে mapIdentifier বৈশিষ্ট্য সহ KVM-এর নাম উল্লেখ করতে ভুলবেন না। যেমন:

<Delete>
   <Key>
      <Parameter>key_name_literal</Parameter>
   </Key>
</Delete>
ডিফল্ট N/A
উপস্থিতি প্রয়োজন যদি <Get> বা <Put> উপস্থিত না থাকে।
টাইপ N/A

<এন্ট্রি> উপাদান

মূল মান মানচিত্রের জন্য বীজের মান, যা মূল মান মানচিত্রের মধ্যে পূর্ণ হয় যখন এটি শুরু হয়।

পাবলিক ক্লাউডের জন্য এজ-এর জন্য, কী আকার 2 KB-তে সীমাবদ্ধ। যেমন:

<InitialEntries>
   <Entry>
      <Key>
         <Parameter>key_name_literal</Parameter>
      </Key>
      <Value>v1</Value>
   </Entry>
   <Entry>
      <Key>
         <Parameter>key_name_variable</Parameter>
      </Key>
      <Value>v3</Value>
      <Value>v4</Value>
   </Entry>
</InitialEntries>
ডিফল্ট N/A
উপস্থিতি ঐচ্ছিক
টাইপ N/A

<এক্সক্লুসিভ ক্যাশে> উপাদান

অবচয়। পরিবর্তে <Scope> উপাদান ব্যবহার করুন।

<ExpiryTimeInSecs> উপাদান

সেকেন্ডের মধ্যে সময়কাল নির্দিষ্ট করে যার পরে Edge নির্দিষ্ট KVM থেকে তার ক্যাশে করা মান রিফ্রেশ করে।

0 বা -1 এর মান, বা এই উপাদানটি বাদ দিলে, মানে 300 সেকেন্ডের ডিফল্ট মান ব্যবহার করা হয়। যেমন:

<ExpiryTimeInSecs>600</ExpiryTimeInSecs>
ডিফল্ট 300 (5 মিনিট)
উপস্থিতি ঐচ্ছিক
টাইপ পূর্ণসংখ্যা

একটি কেভিএম হল একটি দীর্ঘমেয়াদী অধ্যবসায় প্রক্রিয়া যা একটি NoSQL ডাটাবেসে কী এবং মান সংরক্ষণ করে। এই কারণে, রানটাইমে KVM থেকে পড়া সম্ভাব্যভাবে প্রক্সি কর্মক্ষমতা ধীর করতে পারে। কর্মক্ষমতা উন্নত করতে, রানটাইম চলাকালীন মেমরিতে KVM কী/মান ক্যাশ করার জন্য এজ-এর একটি অন্তর্নির্মিত ব্যবস্থা রয়েছে। এই KVM অপারেশন নীতি সবসময় GET অপারেশনের জন্য ক্যাশে থেকে পড়া হয়।

<ExpiryTimeInSecs> উপাদানটি আপনাকে KVM থেকে পুনরায় রিফ্রেশ করার আগে নীতিতে ব্যবহৃত কী/মানগুলি কতক্ষণ ক্যাশে সংরক্ষণ করা হবে তা নিয়ন্ত্রণ করতে দেয়। যাইহোক, GET এবং PUT ক্রিয়াকলাপগুলি কীভাবে ক্যাশের মেয়াদ শেষ হওয়াকে প্রভাবিত করে তার মধ্যে কিছু পার্থক্য রয়েছে।

GET - প্রথমবার যখন একটি KVM GET অপারেশন চালানো হয়, KVM থেকে অনুরোধ করা কী/মানগুলি (যার নাম নীতির রুট mapIdentifier অ্যাট্রিবিউটে উল্লেখ করা হয়েছে) ক্যাশে লোড করা হয়, যেখানে নিম্নলিখিতগুলির মধ্যে একটি না হওয়া পর্যন্ত পরবর্তী GET অপারেশনগুলির জন্য সেগুলি থাকে :

  • <ExpiryTimeInSecs> -এ উল্লিখিত সেকেন্ডের সংখ্যা মেয়াদ শেষ।
    বা
  • একটি KVM নীতিতে একটি PUT অপারেশন বিদ্যমান মানগুলিকে ওভাররাইট করে (পরে ব্যাখ্যা করা হয়েছে)।

PUT - একটি PUT অপারেশন নির্দিষ্ট KVM-এ কী/মান লেখে। PUT যদি ক্যাশে ইতিমধ্যেই বিদ্যমান একটি কীতে লেখে, সেই ক্যাশে অবিলম্বে রিফ্রেশ হয় এবং এখন নীতির <ExpiryTimeInSecs> উপাদানে নির্দিষ্ট সেকেন্ডের সংখ্যার জন্য নতুন মান ধারণ করে।

উদাহরণ - একটি কেভিএম ক্যাশ করা

  1. একটি GET অপারেশন "রেটিং" এর মান পুনরুদ্ধার করে যা ক্যাশে মান "10" যোগ করে। নীতিতে <ExpiryTimeInSecs> হল 60।
  2. 30 সেকেন্ড পরে, GET নীতি আবার কার্যকর করে এবং ক্যাশে থেকে "10" পুনরুদ্ধার করে।
  3. 5 সেকেন্ড পরে, একটি PUT নীতি "রেটিং" এর মান "8" এ আপডেট করে এবং PUT নীতিতে <ExpiryTimeInSecs> হল 20। ক্যাশে অবিলম্বে নতুন মান দিয়ে রিফ্রেশ করা হয়, যা এখন ক্যাশে থাকার জন্য সেট করা হয়েছে 20 সেকেন্ড। (যদি PUT না ঘটত, তবে প্রথম GET দ্বারা তৈরি করা ক্যাশে মূল 60 সেকেন্ড থেকে বাকি 30 সেকেন্ডের জন্য এখনও বিদ্যমান থাকত।)
  4. 15 সেকেন্ড পরে, আরেকটি GET কার্যকর করে এবং "8" এর মান পুনরুদ্ধার করে।

<পান> উপাদান

উল্লেখিত কীটির মান পুনরুদ্ধার করে। অন্তত একটি <Get> , <Put> , অথবা <Delete> ব্যবহার করতে হবে।

মূল উপাদানে mapIdentifier বৈশিষ্ট্য সহ KVM-এর নাম উল্লেখ করতে ভুলবেন না।

আপনি একটি KVM থেকে একাধিক আইটেম পুনরুদ্ধার করতে নীতিতে একাধিক Get ব্লক অন্তর্ভুক্ত করতে পারেন।

ডিফল্ট N/A
উপস্থিতি প্রয়োজন যদি <Put> বা <Delete> উপস্থিত না থাকে।
টাইপ N/A

একটি KVM থেকে একটি একক আইটেম পান

<Get assignTo="myvar" index="1">         
   <Key>             
      <Parameter>key_name_literal</Parameter>         
   </Key>     
</Get>

একটি KVM থেকে একাধিক আইটেম পান

নিম্নলিখিত উদাহরণে, নিম্নলিখিত কী এবং মান সহ একটি KVM অনুমান করুন। সর্বকালের সর্বাধিক জনপ্রিয় চলচ্চিত্রগুলির একটি চলমান তালিকা সংরক্ষণ করার পাশাপাশি, KVM সমস্ত প্রধান চলচ্চিত্রের পরিচালকের নাম সংরক্ষণ করে।

চাবি মান
শীর্ষ_চলচ্চিত্র প্রিন্সেস ব্রাইড, দ্য গডফাদার, সিটিজেন কেন
নাগরিক কেন ওরসন ওয়েলস
রাজকুমারী বধূ রব রেইনার
গডফাদার ফ্রান্সিস ফোর্ড কপোলা

এখানে একটি KVM নীতি কনফিগারেশন রয়েছে যা আমরা বর্তমান সবচেয়ে জনপ্রিয় চলচ্চিত্র এবং এর পরিচালকের নাম পুনরুদ্ধার করতে ব্যবহার করতে পারি:

<Get assignTo="top.movie.pick" index="1">
   <Key>
      <Parameter>top_movies</Parameter>
   </Key>
</Get>
<Get assignTo="movie.director">
   <Key>
      <Parameter ref="top.movie.pick"/>
   </Key>
</Get>

যখন API প্রক্সি কল করা হয়, তখন এজ নিম্নলিখিত ভেরিয়েবলগুলি তৈরি করে যা আপনি API প্রক্সি ফ্লোতে ব্যবহার করতে পারেন:

  • top.movie.pick =Princess Bride
  • movie.director =Rob Reiner

গুণাবলী

নিচের সারণীটি <Get> উপাদানের বৈশিষ্ট্য বর্ণনা করে:

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি
বরাদ্দ করা

যে ভেরিয়েবলে পুনরুদ্ধার করা মান বরাদ্দ করা উচিত।

যদি মূল মান মানচিত্রটি এনক্রিপ্ট করা থাকে, তাহলে " private. যেমন:

<Get assignTo="private.myvar">

আপনি উপসর্গ ব্যবহার না করে একটি এনক্রিপ্ট করা কী মান মানচিত্র পুনরুদ্ধার করার চেষ্টা করলে নীতিটি একটি ত্রুটি ছুড়ে দেয়। উপসর্গ, যা ডিবাগিংয়ের সময় মৌলিক নিরাপত্তার জন্য প্রয়োজন, API প্রক্সি ট্রেস এবং ডিবাগ সেশন থেকে এনক্রিপ্ট করা মানগুলি লুকিয়ে রাখে।

এনক্রিপ্ট করা কী মান মানচিত্র তৈরির বিষয়ে তথ্যের জন্য, কী/মান মানচিত্র ব্যবস্থাপনা API- এর "তৈরি করুন" বিষয় দেখুন এবং পরিবেশ কী মান মানচিত্র তৈরি ও সম্পাদনা করুন

N/A প্রয়োজন
সূচক

একটি বহু-মূল্যবান কী থেকে আনতে আইটেমের সূচক নম্বর (একটি 1-ভিত্তিক সূচকে)৷ উদাহরণস্বরূপ, index=1 উল্লেখ করলে প্রথম মানটি ফিরে আসবে এবং এটি assignTo ভেরিয়েবলে বরাদ্দ করা হবে। যদি কোনো সূচকের মান নির্দিষ্ট করা না থাকে, তাহলে সেই এন্ট্রির সমস্ত মান একটি java.util.List হিসাবে ভেরিয়েবলে বরাদ্দ করা হয়।

উদাহরণের জন্য, নমুনায় "কেভিএম থেকে এনক্রিপ্টেড মান পান" ট্যাবটি দেখুন।

N/A ঐচ্ছিক

<InitialEntry> উপাদান

মূল মান মানচিত্রের জন্য বীজের মান, যা মূল মান মানচিত্রের মধ্যে পূর্ণ হয় যখন এটি শুরু হয়। মূল উপাদানে mapIdentifier বৈশিষ্ট্য সহ KVM-এর নাম উল্লেখ করতে ভুলবেন না। উদাহরণস্বরূপ:

<InitialEntries>
   <Entry>
      <Key>
         <Parameter>key_name_literal</Parameter>
      </Key>
      <Value>v1</Value>
   </Entry>
   <Entry>
      <Key>
         <Parameter>key_name_variable</Parameter>
      </Key>
      <Value>v3</Value>
      <Value>v4</Value>
   </Entry>
</InitialEntries>

এই উপাদানটি ব্যবহার করার সময়, আপনি যখন প্রক্সির একটি স্থাপন করা সংস্করণে ম্যানেজমেন্ট UI-তে নীতিটি সংরক্ষণ করেন বা এই উপাদানটির সাথে নীতি ধারণকারী API প্রক্সি বান্ডেল স্থাপন করেন, তখন কী(গুলি) স্বয়ংক্রিয়ভাবে KVM-এ তৈরি হয় (এনক্রিপ্ট না করা হিসাবে) . যদি নীতির মানগুলি KVM-এর মানগুলির থেকে আলাদা হয়, তাহলে প্রক্সি স্থাপন করার সময় KVM-এর মানগুলি ওভাররাইট করা হয়৷ বিদ্যমান কী/মানগুলির সাথে বিদ্যমান KVM-এ যেকোনো নতুন কী/মান যোগ করা হয়।

এই উপাদান দ্বারা পপুলেট করা কী এবং মান অবশ্যই আক্ষরিক হতে হবে। উদাহরণস্বরূপ, <Parameter ref="request.queryparam.key"> এই উপাদানটির মধ্যে সমর্থিত নয়৷

পাবলিক ক্লাউডের জন্য এজ এবং প্রাইভেট কাউডের জন্য এজ উভয়ের জন্য কী সাইজ 2 KB-তে সীমাবদ্ধ। KVM মান 2 KB পর্যন্ত সীমাবদ্ধ।

একটি এনক্রিপ্ট করা KVM তৈরি করতে, কী/মান মানচিত্র ব্যবস্থাপনা API ব্যবহার করুন।

ডিফল্ট N/A
উপস্থিতি ঐচ্ছিক
টাইপ N/A

<কী> উপাদান

একটি কী/মান মানচিত্র এন্ট্রিতে কীটি নির্দিষ্ট করে। একটি কী কম্পোজিট হতে পারে, যার অর্থ কী তৈরি করতে একাধিক প্যারামিটার যুক্ত করা যেতে পারে। উদাহরণস্বরূপ, userID এবং role একটি key তৈরি করতে একত্রিত হতে পারে। যেমন:

<Key>
    <Parameter>key_name_literal</Parameter>
</Key>

কী নাম কিভাবে সেট করতে হয় সে সম্পর্কে নির্দিষ্ট করার জন্য <প্যারামিটার> উপাদানটি দেখতে ভুলবেন না।

পাবলিক ক্লাউডের জন্য এজ সহ, কী আকার 2 KB-তে সীমাবদ্ধ। আরও জানতে পাবলিক ক্লাউড এপিআই এবং প্রাইভেট ক্লাউড এপিআই-এর জন্য এজ-এর মধ্যে পার্থক্য দেখুন।

ডিফল্ট N/A
উপস্থিতি ঐচ্ছিক
টাইপ N/A

<প্যারামিটার> উপাদান

একটি কী/মান জোড়ায় কী নির্দিষ্ট করে। কী/মান জোড়া তৈরি, স্থাপন, পুনরুদ্ধার বা মুছে ফেলার সময় এই উপাদানটি নামটি নির্দিষ্ট করে।

আপনি ব্যবহার করে নাম নির্দিষ্ট করতে পারেন:

  • একটি আক্ষরিক স্ট্রিং

    <Key>
      <Parameter>literal</Parameter>
    </Key>
  • ref অ্যাট্রিবিউট ব্যবহার করে রান টাইমে পুনরুদ্ধার করা একটি ভেরিয়েবল

    <Key>
      <Parameter ref="variable_name"/>
    </Key>
  • আক্ষরিক এবং পরিবর্তনশীল রেফারেন্সের সংমিশ্রণ

    <Key>
      <Parameter>targeturl</Parameter>
      <Parameter ref="apiproxy.name"/>
      <Parameter>weight</Parameter>
    </Key>

যখন কী উপাদানটিতে একাধিক প্যারামিটার উপাদান অন্তর্ভুক্ত থাকে, তখন কার্যকর কী স্ট্রিং হল প্রতিটি প্যারামিটারের মানগুলির সংযোজন, একটি ডবল আন্ডারস্কোরের সাথে যুক্ত। উদাহরণস্বরূপ, উপরের উদাহরণে, যদি apiproxy.name ভেরিয়েবলের মান "abc1" থাকে, তাহলে কার্যকর কী হবে targeturl__abc1__weight

আপনি একটি কী/মান এন্ট্রি পাচ্ছেন, আপডেট করছেন বা মুছে ফেলছেন না কেন, মূল নামটি কী মান মানচিত্রের কীটির নামের সাথে মিলতে হবে। নির্দেশিকাগুলির জন্য মূল নামগুলি নির্দিষ্ট করা এবং পুনরুদ্ধার করা দেখুন।

ডিফল্ট N/A
উপস্থিতি প্রয়োজন
টাইপ স্ট্রিং

গুণাবলী

নিম্নলিখিত সারণী <Parameter> উপাদানের বৈশিষ্ট্য বর্ণনা করে:

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি
রেফ একটি ভেরিয়েবলের নাম নির্দিষ্ট করে যার মানটিতে আপনি যে কী তৈরি করতে, পেতে বা মুছতে চান তার সঠিক নামটি রয়েছে। N/A ওপেনিং এবং ক্লোজিং ট্যাগের মধ্যে কোনো আক্ষরিক মান দেওয়া না থাকলে প্রয়োজনীয়। একটি আক্ষরিক মান দেওয়া হলে নিষিদ্ধ.

<পুট> উপাদান

কী মান মানচিত্রটি এনক্রিপ্ট করা বা আনএনক্রিপ্ট করা হোক না কেন, একটি কী মান মানচিত্রে একটি কী/মান জোড়া লেখে। প্যারেন্ট এলিমেন্টে mapIdentifier অ্যাট্রিবিউটে উল্লেখ করা মূল মান মানচিত্রটি বিদ্যমান না থাকলে, মানচিত্রটি স্বয়ংক্রিয়ভাবে তৈরি হয় (এনক্রিপ্ট করা না হয়ে)। যদি মূল মান মানচিত্রটি ইতিমধ্যেই বিদ্যমান থাকে তবে কী/মান এতে যোগ করা হয়।

একটি এনক্রিপ্ট করা কী মান মানচিত্র তৈরি করতে, কী/মান মানচিত্র ব্যবস্থাপনা API ব্যবহার করুন; অথবা UI-তে এনক্রিপ্ট করা পরিবেশ-স্কোপড KVM তৈরি করতে পরিবেশ কী মান মানচিত্র তৈরি ও সম্পাদনা দেখুন।

<Put override="false">         
   <Key>             
      <Parameter ref="mykeyvar"/>         
   </Key>         
   <Value ref="myvalvar1"/>     
</Put>
ডিফল্ট N/A
উপস্থিতি প্রয়োজন যদি <Get> বা <Delete> উপস্থিত না থাকে।
টাইপ N/A

গুণাবলী

নিচের সারণীটি <Put> উপাদানের বৈশিষ্ট্য বর্ণনা করে:

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি
ওভাররাইড

true তে সেট করা হলে, এটি একটি কী-এর মান ওভাররাইড করে।

false ঐচ্ছিক

<স্কোপ> উপাদান

মূল মান মানচিত্রের জন্য অ্যাক্সেসযোগ্যতার সীমানা সংজ্ঞায়িত করে। ডিফল্ট স্কোপ হল environment , যার অর্থ ডিফল্টরূপে, মানচিত্র এন্ট্রিগুলি পরিবেশে চলমান সমস্ত API প্রক্সি দ্বারা ভাগ করা হয় (উদাহরণস্বরূপ, পরীক্ষা বা প্রোড)। যদি আপনি সুযোগটি apiproxy এ সেট করেন, তাহলে কী মান মানচিত্রের এন্ট্রিগুলি শুধুমাত্র API প্রক্সি দ্বারা অ্যাক্সেসযোগ্য যা মানচিত্রে মানগুলি লেখে।

মনে রাখবেন যে একটি মানচিত্র বা মানচিত্র এন্ট্রি অ্যাক্সেস করার সময়, আপনাকে অবশ্যই একই সুযোগ মান উল্লেখ করতে হবে যা আপনি মানচিত্র তৈরি করার সময় ব্যবহার করেছিলেন। উদাহরণস্বরূপ, যদি মানচিত্রটি apiproxy এর স্কোপ দিয়ে তৈরি করা হয়, তাহলে আপনাকে অবশ্যই এটির মান পুনরুদ্ধার করার সময়, পরিবর্তন করা বা এন্ট্রি মুছে ফেলার সময় apiproxy স্কোপ ব্যবহার করতে হবে।

<Scope>environment</Scope>
ডিফল্ট environment
উপস্থিতি ঐচ্ছিক
টাইপ স্ট্রিং
বৈধ মান:
  • organization
  • environment
  • apiproxy
  • policy (API প্রক্সি সংশোধন)

<মান> উপাদান

একটি কী এর মান নির্দিষ্ট করে। আপনি একটি আক্ষরিক স্ট্রিং হিসাবে মানটি নির্দিষ্ট করতে পারেন বা, ref অ্যাট্রিবিউট ব্যবহার করে, রান টাইমে পুনরুদ্ধার করার জন্য একটি পরিবর্তনশীল হিসাবে:

<!-- Specify a literal value -->
<Value>literal<Value>

বা:

<!-- Specify the name of variable value to be populated at run time. -->
<Value ref="variable_name"/>

একটি মাল্টি-পার্ট মান নির্দিষ্ট করতে আপনি একাধিক <Value> উপাদানও অন্তর্ভুক্ত করতে পারেন। রান টাইমে মান একত্রিত হয়।

নিম্নলিখিত উদাহরণে, KVM-এ দুটি কী যোগ করা হয়েছে:

  • v1,v2 মান সহ কী k1
  • v3,v4 মান সহ কী k2
<InitialEntries>         
   <Entry>             
      <Key>
         <Parameter>k1</Parameter>
      </Key>
      <Value>v1</Value>
      <Value>v2</Value>     
   </Entry>
   <Entry>
      <Key>
         <Parameter>k2</Parameter>
      </Key>
      <Value>v3</Value>
      <Value>v4</Value>
   </Entry>
</InitialEntries>

নিম্নলিখিত উদাহরণে, দুটি মান দিয়ে একটি কী তৈরি করা হয়েছে। ধরা যাক প্রতিষ্ঠানের নাম হল foo_org , API প্রক্সি নাম হল bar , এবং পরিবেশ হল test :

  • মান bar,test সহ কী foo_org
<Put>
    <Key>
        <Parameter ref="organization.name"/>
    </Key>
    <Value ref="apiproxy.name"/>
    <Value ref="environment.name"/>
</Put>
ডিফল্ট N/A
উপস্থিতি প্রয়োজন
টাইপ স্ট্রিং

গুণাবলী

নিচের টেবিলটি <Value> উপাদানের বৈশিষ্ট্য বর্ণনা করে:

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি
রেফ একটি ভেরিয়েবলের নাম নির্দিষ্ট করে যার মানটিতে আপনি সেট করতে চান এমন কী মান রয়েছে। N/A ওপেনিং এবং ক্লোজিং ট্যাগের মধ্যে কোনো আক্ষরিক মান দেওয়া না থাকলে প্রয়োজনীয়। একটি আক্ষরিক মান দেওয়া হলে নিষিদ্ধ.

ত্রুটি উল্লেখ

এজ নীতিগুলি থেকে ফিরে আসা ত্রুটিগুলি ত্রুটি কোড রেফারেন্সে বর্ণিত একটি সামঞ্জস্যপূর্ণ বিন্যাস অনুসরণ করে৷

এই বিভাগটি ফল্ট কোড এবং ত্রুটির বার্তাগুলি বর্ণনা করে যেগুলি ফেরত দেওয়া হয় এবং ত্রুটি ভেরিয়েবলগুলি যেগুলি এজ দ্বারা সেট করা হয় যখন এই নীতিটি একটি ত্রুটি ট্রিগার করে৷ এই তথ্যটি জানা গুরুত্বপূর্ণ যে আপনি ত্রুটিগুলি পরিচালনা করার জন্য ত্রুটির নিয়ম তৈরি করছেন কিনা। আরও জানতে, নীতিগত ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার যা জানা দরকার তা দেখুন৷

রানটাইম ত্রুটি

নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷

ফল্ট কোড HTTP স্থিতি কারণ ঠিক করুন
steps.keyvaluemapoperations.SetVariableFailed 500

এই ত্রুটিটি ঘটে যদি আপনি একটি এনক্রিপ্ট করা কী মান মানচিত্র থেকে একটি মান পুনরুদ্ধার করার চেষ্টা করেন এবং মানটিকে একটি ভেরিয়েবলে সেট করেন যার নামের উপসর্গ private নেই। উপসর্গ, যা ডিবাগিংয়ের সময় মৌলিক নিরাপত্তার জন্য প্রয়োজন, API প্রক্সি ট্রেস এবং ডিবাগ সেশন থেকে এনক্রিপ্ট করা মানগুলি লুকিয়ে রাখে।

steps.keyvaluemapoperations.UnsupportedOperationException 500

মূল মান মানচিত্র অপারেশন নীতিতে mapIdentifier অ্যাট্রিবিউট খালি স্ট্রিং-এ সেট করা থাকলে এই ত্রুটি ঘটে৷

স্থাপনার ত্রুটি

আপনি যখন এই নীতি সম্বলিত একটি প্রক্সি স্থাপন করেন তখন এই ত্রুটিগুলি ঘটতে পারে৷

ত্রুটির নাম কারণ ঠিক করুন
InvalidIndex যদি মূল মান মানচিত্র অপারেশন নীতির <Get> উপাদানে নির্দিষ্ট করা index বৈশিষ্ট্যটি শূন্য বা একটি ঋণাত্মক সংখ্যা হয়, তাহলে API প্রক্সির স্থাপনা ব্যর্থ হয়। সূচকটি 1 থেকে শুরু হয়, তাই শূন্য বা ঋণাত্মক পূর্ণসংখ্যার একটি সূচক অবৈধ হিসাবে বিবেচিত হয়।
KeyIsMissing এই ত্রুটিটি ঘটে যদি <Key> উপাদানটি সম্পূর্ণভাবে অনুপস্থিত থাকে বা মূল মান মানচিত্র অপারেশন নীতির <InitialEntries> উপাদানের <Entry> নীচে <Key> উপাদানের মধ্যে <Parameter> উপাদানটি অনুপস্থিত থাকে।
ValueIsMissing মূল মান মানচিত্র অপারেশন নীতির <InitialEntries> উপাদানের <Entry> উপাদানের নিচে <Value> উপাদানটি অনুপস্থিত থাকলে এই ত্রুটি ঘটে।

স্কিমাস

ব্যবহারের নোট

মূল মান মানচিত্রের একটি সংক্ষিপ্ত বিবরণের জন্য, কী মান মানচিত্রের সাথে কাজ করা দেখুন।

একটি মূল মান মানচিত্র স্টোর কী/মান জোড়া হিসাবে ফর্ম্যাট করা ডেটার জন্য একটি হালকা অধ্যবসায় ব্যবস্থা প্রদান করে। আপনি নীতি বা কোডের মাধ্যমে রানটাইমে এগুলি অ্যাক্সেস করতে পারেন। একটি মানচিত্র key=value বিন্যাসে যেকোন নির্বিচারে তথ্য ধারণ করে।

উদাহরণস্বরূপ localhost=127.0.0.1 , zip_code=94110 , অথবা first_name=felix । প্রথম উদাহরণে, localhost একটি কী , এবং 127.0.0.1 একটি মান । প্রতিটি কী/মান জোড়া একটি কী মান মানচিত্রে একটি এন্ট্রি হিসাবে সংরক্ষণ করা হয়। একটি মূল মান মানচিত্র অনেক এন্ট্রি সংরক্ষণ করতে পারে.

এখানে কী মান মানচিত্র ব্যবহার করার একটি উদাহরণ। ধরুন আপনাকে বিভিন্ন ব্যাকএন্ড পরিবেশের সাথে যুক্ত আইপি ঠিকানাগুলির একটি তালিকা সংরক্ষণ করতে হবে। আপনি ipAddresses নামে একটি কী মান মানচিত্র তৈরি করতে পারেন যাতে এন্ট্রি হিসাবে কী/মান জোড়ার একটি তালিকা থাকে। উদাহরণস্বরূপ, এই JSON যেমন একটি মানচিত্র উপস্থাপন করতে পারে:

{
  "entry" : [ {
    "name" : "Development",
    "value" : "65.87.18.18"
  }, {
    "name" : "Staging",
    "value" : "65.87.18.22"
  } ],
  "name" : "ipAddresses"
}

আপনি আইপি ঠিকানাগুলির একটি স্টোর তৈরি করতে এই কাঠামোটি ব্যবহার করতে পারেন যা রানটাইমে নীতিগুলি দ্বারা আইপি অনুমোদিত তালিকা বা অস্বীকৃতি কার্যকর করতে, গতিশীলভাবে একটি ব্যাকএন্ড লক্ষ্য ঠিকানা নির্বাচন করতে এবং আরও অনেক কিছু ব্যবহার করতে পারে৷ সাধারণত, KeyValueMapOperations নীতিটি বহুদিনের তথ্য সংরক্ষণ বা পুনরুদ্ধার করতে ব্যবহৃত হয় যা একাধিক অনুরোধ/প্রতিক্রিয়া লেনদেনের জন্য পুনরায় ব্যবহার করা প্রয়োজন।

কী/মান মানচিত্রগুলি KeyValueMapOperations নীতির মাধ্যমে বা সরাসরি Apigee Edge ব্যবস্থাপনা API-এর মাধ্যমে ব্যবহার করা যেতে পারে। প্রতিষ্ঠান কী/মান মানচিত্র API API-এ বিশদ বিবরণের জন্য ব্যবস্থাপনা API রেফারেন্স দেখুন। আপনি API ব্যবহার করতে পারেন, উদাহরণস্বরূপ, কী/মান স্টোরে বড় ডেটা সেট আপলোড করতে, বা কী/মান মানচিত্র এন্ট্রিগুলি পরিচালনা করতে স্ক্রিপ্ট তৈরি করতে। KeyValueMapOperations নীতির সাথে এটি অ্যাক্সেস করার আগে আপনাকে API এর সাথে একটি কী/মান মানচিত্র তৈরি করতে হবে।

মূল নামগুলি নির্দিষ্ট করা এবং পুনরুদ্ধার করা

<Parameter> এবং <Value> উপাদানগুলির সাথে, আপনি হয় একটি আক্ষরিক মান নির্দিষ্ট করতে পারেন (যেখানে মানটি খোলার এবং বন্ধ করার ট্যাগের মধ্যে থাকে) অথবা একটি ভেরিয়েবলের নাম নির্দিষ্ট করতে ref অ্যাট্রিবিউট ব্যবহার করতে পারেন যার মান রানটাইমে ব্যবহার করা উচিত।

প্যারামিটার উপাদানটি বিশেষ উল্লেখের দাবি রাখে, কারণ এটি তৈরি করা কীটির নাম, সেইসাথে আপনি যে কী নামটি পুনরুদ্ধার করতে বা মুছতে চান সেটি নির্ধারণ করে। নিম্নলিখিত দুটি উদাহরণ. প্রথমটি আক্ষরিক অর্থে একটি কী নাম নির্দিষ্ট করে এবং দ্বিতীয়টি একটি পরিবর্তনশীল ব্যবহার করে একটি কী নাম উল্লেখ করে। ধরা যাক একটি KVM-এ কী তৈরি করতে নিম্নলিখিতগুলি ব্যবহার করা হয়:

<Parameter>key_name_literal</Parameter>
<Parameter ref="key.name.variable"/>

প্রথম উদাহরণে, "key_name_literal" এর আক্ষরিক মান কী নাম হিসাবে KVM-এ সংরক্ষণ করা হয়। দ্বিতীয় দৃষ্টান্তে, key.name.variable এ যাই হোক না কেন তা KVM-এ কী-এর নাম হয়ে যায়। উদাহরণস্বরূপ, যদি key.name.variable foo মান থাকে, তাহলে কীটির নাম হবে "foo"।

আপনি যখন একটি GET অপারেশনের মাধ্যমে কী এবং একটি কী মান পুনরুদ্ধার করতে চান (অথবা DELETE অপারেশনের মাধ্যমে মুছে ফেলুন), তখন <প্যারামিটার> সেটিংসটি KVM-এ কী নামের সাথে মেলে। উদাহরণ স্বরূপ, যদি KVM-এর মূল নামটি "foo" হয়, আপনি হয় <Parameter>foo</Parameter> দিয়ে আক্ষরিক মান নির্দিষ্ট করতে পারেন অথবা একটি ভেরিয়েবল নির্দিষ্ট করতে পারেন যাতে সঠিক মান "foo" থাকে, যেমন: <Parameter ref="variable.containing.foo"/>

সম্পর্কিত বিষয়