LookupCache নীতি

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

রানটাইমে কীভাবে ক্যাশে করা ভ্যালু রিট্রিভ করা উচিত তা কনফিগার করে।

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

ব্যাকএন্ড রিসোর্সের উত্তর ক্যাশে করা সম্পর্কে জানতে, উত্তর ক্যাশে করার নীতি দেখুন।

এলিমেন্ট রেফারেন্স

এই নীতিতে আপনি যেসব এলিমেন্ট কনফিগার করতে পারবেন, তার তালিকা নিচে দেওয়া হল।

<LookupCache async="false" continueOnError="false" enabled="true" name="Lookup-Cache-1">
    <DisplayName>Lookup Cache 1</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref=""/>
    </CacheKey>
    <!-- Omit this element if you're using the included shared cache. -->
    <CacheResource/>
    <CacheLookupTimeoutInSeconds/>
    <Scope>Exclusive</Scope>
    <AssignTo>flowVar</AssignTo>
</LookupCache>

ডিফল্ট হিসেবে একটি শেয়ার করা ক্যাশে অন্তর্ভুক্ত করা হয়। শেয়ার করা ক্যাশে ব্যবহার করতে, এই নীতি কনফিগারেশনে <CacheResource> এলিমেন্ট বাদ দিন।

অন্তর্নিহিত ডেটা স্টোর সম্পর্কে আরও জানতে, ক্যাশে ইন্টার্নাল দেখুন। ক্যাশে কনফিগার করা সম্পর্কে আরও জানতে এনভায়রনমেন্ট ক্যাশে তৈরি ও এডিট করালিঙ্কে দেখুন।

<LookupCache> অ্যাট্রিবিউট

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

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি
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 বৈশিষ্ট্যের মান ব্যবহার করা হবে।

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

<AssignTo> এলিমেন্ট

ক্যাশে থেকে ডেটা পাওয়ার পরে, ক্যাশে এন্ট্রি যে ভেরিয়েবলে অ্যাসাইন করা হয় সেটি নির্দিষ্ট করে। ক্যাশে। ভেরিয়েবলটি অবশ্যই রাইটেবল হতে হবে। ক্যাশে লুক-আপ কোনও ভ্যালু না পেলে, ভেরিয়েবেল সেট করা হবে না।

<AssignTo>variable_to_receive_cached_value</AssignTo>

ডিফল্ট:

প্রযোজ্য নয়

উপস্থিতি:

প্রয়োজনীয়

টাইপ:

স্ট্রিং

<CacheKey> এলিমেন্ট

ক্যাশে স্টোর করা ডেটার একটি অংশের জন্য অনন্য পয়েন্টার কনফিগার করে।

<CacheKey>
    <Prefix>string</Prefix>
    <KeyFragment ref="variable_name" />
    <KeyFragment>literal_string</KeyFragment>
</CacheKey>

ডিফল্ট:

প্রযোজ্য নয়

উপস্থিতি:

প্রয়োজনীয়

টাইপ:

প্রযোজ্য নয়

<CacheKey> ক্যাশে স্টোর করা প্রতিটি ডেটার নাম তৈরি করে।

রানটাইমে, <KeyFragment> ভ্যালুর আগে <Scope> এলিমেন্ট ভ্যালু বা <Prefix> ভ্যালু যোগ করা হয়। যেমন, নিম্নলিখিত ফলাফল থেকে UserToken__apiAccessToken__<value_of_client_id> ক্যাশে কী পাওয়া যায়:

<CacheKey>
    <Prefix>UserToken</Prefix>
    <KeyFragment>apiAccessToken</KeyFragment>
    <KeyFragment ref="request.queryparam.client_id" />
</CacheKey>

আপনি <Prefix> ও <Scope>-এর সাথে <CacheKey> এলিমেন্ট ব্যবহার করেন। আরও তথ্যের জন্য, ক্যাশে কী নিয়ে কাজ করা দেখুন।

<CacheLookupTimeoutInSeconds> এলিমেন্ট

কত সেকেন্ড পরে ক্যাশে খোঁজা না পেলে তা ক্যাশে মিস হিসেবে গণ্য করা হবে তা উল্লেখ করে। এটি ঘটলে, ক্যাশে-মিস পাথ ধরে ফ্লো আবার শুরু হয়।

<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>

ডিফল্ট:

৩০

উপস্থিতি:

ঐচ্ছিক

টাইপ:

পূর্ণসংখ্যা

<CacheResource> এলিমেন্ট

মেসেজ কোথায় স্টোর করা হবে তা নির্দিষ্ট করে।

এই নীতি (এবং আপনার সংশ্লিষ্ট PopulateCache ও InvalidateCache নীতি) অন্তর্ভুক্ত শেয়ার করা ক্যাশে ব্যবহার করলে, এই এলিমেন্টটি সম্পূর্ণ বাদ দিন।

<CacheResource>cache_to_use</CacheResource>

ডিফল্ট:

প্রযোজ্য নয়

উপস্থিতি:

ঐচ্ছিক

টাইপ:

স্ট্রিং

ক্যাশে কনফিগার করা সম্পর্কে আরও জানতে, এনভায়রনমেন্ট ক্যাশে তৈরি ও এডিট করা দেখুন।

<CacheKey>/<KeyFragment> এলিমেন্ট

ক্যাশে কী-তে অন্তর্ভুক্ত করতে হবে এমন একটি মান নির্দিষ্ট করে, যা ক্যাশে করা উত্তরের সাথে ম্যাচ করা অনুরোধের জন্য একটি নেমস্পেস তৈরি করে।

<KeyFragment ref="variable_name"/>
<KeyFragment>literal_string</KeyFragment>

ডিফল্ট:

প্রযোজ্য নয়

উপস্থিতি:

ঐচ্ছিক

টাইপ:

প্রযোজ্য নয়

এটি একটি কী (আপনার দেওয়া স্ট্যাটিক নাম) বা ভ্যালু (ভেরিয়েবল রেফারেন্স করে সেট করা ডায়নামিক এন্ট্রি) হতে পারে। উল্লেখ করা সব ফ্র্যাগমেন্ট একসাথে (প্রিফিক্স সহ) যোগ করে ক্যাশে কী তৈরি করা হয়।

<KeyFragment>apiAccessToken</KeyFragment>
<KeyFragment ref="request.queryparam.client_id" />

আপনি <Prefix> ও <Scope>-এর সাথে <KeyFragment> এলিমেন্ট ব্যবহার করেন। আরও তথ্যের জন্য, ক্যাশে কী নিয়ে কাজ করা দেখুন।

অ্যাট্রিবিউট

অ্যাট্রিবিউট ধরন ডিফল্ট প্রয়োজনীয় বিবরণ
ref স্ট্রিং না

যে ভেরিয়েবেল থেকে ভ্যালু পেতে হবে। এই এলিমেন্টে আক্ষরিক ভ্যালু থাকলে এটি ব্যবহার করা উচিত নয়।

<CacheKey>/<Prefix> এলিমেন্ট

ক্যাশে কী প্রিফিক্স হিসেবে ব্যবহার করার জন্য একটি মান নির্দিষ্ট করে।

<Prefix>prefix_string</Prefix>

ডিফল্ট:

প্রযোজ্য নয়

উপস্থিতি:

ঐচ্ছিক

টাইপ:

স্ট্রিং

<Scope> -এর পরিবর্তে এই ভ্যালু ব্যবহার করুন, যখন আপনি <Scope> -এর পরিবর্তে নিজের ভ্যালু নির্দিষ্ট করতে চান। সংজ্ঞায়িত করা হলে, <Prefix> ক্যাশে লেখা এন্ট্রির জন্য ক্যাশে কী ভ্যালু আগে যোগ করে। <Prefix> এলিমেন্টের ভ্যালু <Scope> এলিমেন্টের ভ্যালুকে ওভাররাইড করে।

আপনি <CacheKey> ও <Scope>-এর সাথে <Prefix> এলিমেন্ট ব্যবহার করেন। আরও তথ্যের জন্য, ক্যাশে কী নিয়ে কাজ করা দেখুন।

<Scope> এলিমেন্ট

<CacheKey> এলিমেন্টে <Prefix> এলিমেন্ট প্রদান করা না হলে, ক্যাশে কী-এর জন্য প্রিফিক্স তৈরি করতে এনুমেরেশন ব্যবহার করা হয়।

<Scope>scope_enumeration</Scope>

ডিফল্ট:

"এক্সক্লুসিভ"

উপস্থিতি:

ঐচ্ছিক

টাইপ:

স্ট্রিং

<Scope> সেটিং একটি ক্যাশে কী নির্ধারণ করে যা <Scope> ভ্যালু অনুযায়ী প্রিপেন্ড করা হয়। যেমন, স্কোপ Exclusive হিসেবে সেট করা থাকলে, ক্যাশে কী নিম্নলিখিত ফর্ম নেবে: orgName__envName__applicationName__proxy|TargetName__ [ serializedCacheKey ]।

<CacheKey>-এ <Prefix> এলিমেন্ট থাকলে, এটি <Scope> এলিমেন্টের মানকে ওভাররাইড করে। নিচে দেওয়া এনুমেরেশনগুলি বৈধ মানের মধ্যে পড়ে।

আপনি <CacheKey> ও <Prefix>-এর সাথে <Scope> এলিমেন্ট ব্যবহার করেন। আরও তথ্যের জন্য, ক্যাশে কী নিয়ে কাজ করা দেখুন।

গ্রহণযোগ্য মান

Global

এনভায়রনমেন্টে ডেপ্লয় করা সব API প্রক্সি জুড়ে ক্যাশে কী শেয়ার করা হয়। ক্যাশে কী হল orgName __ envName __ ফর্মে আগে থেকে যোগ করা।

আপনি যদি <CacheKey> এন্ট্রিকে <KeyFragment> apiAccessToken এবং <Global> স্কোপ দিয়ে সংজ্ঞায়িত করেন, তাহলে প্রতিটি এন্ট্রি orgName__envName__apiAccessToken হিসেবে স্টোর করা হয়, এর পরে অ্যাক্সেস টোকেনের সিরিয়ালাইজ করা ভ্যালু থাকে। 'apifactory' নামের কোনও সংস্থার মধ্যে 'test' নামের এনভায়রনমেন্টে ডেপ্লয় করা API প্রক্সির জন্য, অ্যাক্সেস টোকেন নিম্নলিখিত ক্যাশে কী-এর অধীনে স্টোর করা হবে: apifactory__test__apiAccessToken.

Application

API প্রক্সি নাম প্রিফিক্স হিসেবে ব্যবহার করা হয়।

ক্যাশে কীটি orgName__envName__applicationName ফর্ম্যাটে আগে থেকে যোগ করা থাকে।

Proxy

ProxyEndpoint কনফিগারেশনকে প্রিফিক্স হিসেবে ব্যবহার করা হয়।

ক্যাশে কীটি orgName__envName__applicationName__proxyEndpointName এই ফর্ম্যাটে আগে থেকে যোগ করা থাকে।

Target

প্রিফিক্স হিসেবে TargetEndpoint কনফিগারেশন ব্যবহার করা হয়।

ক্যাশে কী, এই ফর্ম্যাটে আগে থেকে যোগ করা থাকে orgName__envName__applicationName__targetEndpointName .

Exclusive

ডিফল্ট। এটি সবচেয়ে নির্দিষ্ট এবং তাই প্রদত্ত ক্যাশে নেমস্পেস সংঘর্ষের ঝুঁকি সবচেয়ে কম।

প্রিফিক্স দু'টি ফর্মের মধ্যে একটি:

  • নীতিটি ProxyEndpoint ফ্লোতে অ্যাটাচ করা থাকলে, প্রিফিক্সটি এই ফর্মের হবে ApiProxyName_ProxyEndpointName।
  • নীতিটি TargetEndpoint-এ অ্যাটাচ করা থাকলে, প্রিফিক্সটি এই ফর্মের হবে ApiProxyName_TargetName.

ক্যাশে কী, এই ফর্ম্যাটে আগে থেকে যোগ করা আছে orgName__envName__applicationName__proxyNameITargetName

যেমন, সম্পূর্ণ স্ট্রিংটি এরকম দেখতে হতে পারে:

apifactory__test__weatherapi__16__default__apiAccessToken
.

ব্যবহার সংক্রান্ত নোট

সাধারণ উদ্দেশ্যে ক্যাশিংয়ের জন্য এই নীতি ব্যবহার করুন। রানটাইমে, LookupCache নীতি ক্যাশে থেকে একটি মান পুনরুদ্ধার করে, AssignTo এলিমেন্টের মাধ্যমে আপনি যে ভেরিয়েবল নির্দিষ্ট করেছেন সেটিতে মান অ্যাসাইন করে (কোনও মান পুনরুদ্ধার করা না হলে, ভেরিয়েবল সেট করা হবে না)। এটি কনফিগারেশনের মাধ্যমে তৈরি করা একটি ক্যাশে কী-এর উপর ভিত্তি করে ভ্যালু খোঁজে যা CacheKey এবং Scope এলিমেন্টকে একত্রিত করে। অন্যভাবে বলতে গেলে, PopulateCache নীতির মাধ্যমে ক্যাশে যোগ করা কোনও নির্দিষ্ট ভ্যালু রিট্রিভ করতে, আপনার LookupCache নীতিতে অবশ্যই এমনভাবে ক্যাশে কী-সম্পর্কিত এলিমেন্ট কনফিগার করা থাকতে হবে, যেভাবে PopulateCache নীতিতে করা হয়।

ক্যাশে পূরণ করার নীতি, LookupCache নীতি এবং InvalidateCache নীতি সহ সাধারণ উদ্দেশ্যমূলক ক্যাশিং আপনার কনফিগার করা ক্যাশে বা ডিফল্ট হিসেবে অন্তর্ভুক্ত শেয়ার করা ক্যাশে ব্যবহার করে। বেশিরভাগ ক্ষেত্রে, অন্তর্নিহিত শেয়ার করা ক্যাশে আপনার প্রয়োজন পূরণ করতে পারবে। ডিফল্ট ক্যাশে ব্যবহার করতে, <CacheResource> এলিমেন্টটি বাদ দিন।

ক্যাশে কনফিগার করা সম্পর্কে আরও জানতে, এনভায়রনমেন্ট ক্যাশে তৈরি ও এডিট করা দেখুন। অন্তর্নিহিত ডেটা স্টোর সম্পর্কে আরও জানতে, ক্যাশে ইন্টার্নাল দেখুন।

ফ্লো ভেরিয়েবল

HTTP হেডার বা মেসেজ কন্টেন্ট অথবা ফ্লোতে উপলভ্য প্রসঙ্গ অনুযায়ী, নীতি ও ফ্লোর জন্য ডায়নামিক রানটাইম আচরণ কনফিগার করতে ফ্লো ভেরিয়েবল ব্যবহার করা যেতে পারে। ফ্লো ভেরিয়েবল সম্পর্কে আরও তথ্য জানতে, ভেরিয়েবল রেফারেন্স দেখুন।

LookupCache নীতিতে আপনার সংজ্ঞায়িত ক্যাশের আচরণ কাস্টমাইজ করার পরে নিম্নলিখিত পূর্বনির্ধারিত ফ্লো ভেরিয়েবলগুলি উপলভ্য থাকে।

ভেরিয়েবল ধরন অনুমতি বিবরণ
lookupcache.{policy-name}.cachename স্ট্রিং রিড-অনলি নীতিতে ব্যবহৃত ক্যাশের নাম রিটার্ন করে।
lookupcache.{policy-name}.cachekey স্ট্রিং রিড-অনলি ব্যবহৃত কী রিটার্ন করে।
lookupcache.{policy-name}.cachehit বুলিয়ান রিড-অনলি নির্দিষ্ট ক্যাশে কী-এর জন্য নীতি কোনও ভ্যালু খুঁজে পেলে True।
lookupcache.{policy-name}.assignto স্ট্রিং রিড-অনলি ক্যাশে অ্যাসাইন করা ভেরিয়েবল রিটার্ন করে।

সমস্যার কোড

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

ত্রুটি কোড উপসর্গ

N/A

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

এই নীতি কোনো রানটাইম ত্রুটি নিক্ষেপ না.

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

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

ত্রুটির নাম কারণ ঠিক করুন
InvalidCacheResourceReference এই ত্রুটিটি ঘটে যদি <CacheResource> উপাদানটি এমন একটি নামে সেট করা হয় যা API প্রক্সি স্থাপন করা হয় এমন পরিবেশে বিদ্যমান নেই।
InvalidTimeout যদি <CacheLookupTimeoutInSeconds> উপাদানটি একটি ঋণাত্মক সংখ্যায় সেট করা থাকে, তাহলে API প্রক্সির স্থাপনা ব্যর্থ হয়।
CacheNotFound ত্রুটি বার্তায় উল্লিখিত নির্দিষ্ট ক্যাশে একটি নির্দিষ্ট বার্তা প্রসেসর উপাদানে তৈরি না হলে এই ত্রুটি ঘটে।

ফল্ট ভেরিয়েবল

N/A

উদাহরণ ত্রুটি প্রতিক্রিয়া

N/A