LookupCache নীতি

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

রানটাইমে ক্যাশ করা মানগুলো কীভাবে পুনরুদ্ধার করা হবে তা নির্ধারণ করে।

এই পলিসিটি সাধারণ স্বল্পমেয়াদী ক্যাশিং-এর জন্য ব্যবহৃত হয়। এটি Populate Cache পলিসি (এন্ট্রি লেখার জন্য) এবং Invalidate Cache পলিসি (এন্ট্রি বাতিল করার জন্য) এর সাথে একত্রে ব্যবহৃত হয়।

ব্যাকএন্ড রিসোর্সগুলির প্রতিক্রিয়া ক্যাশ করার জন্য, রেসপন্স ক্যাশ পলিসি দেখুন।

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

এই পলিসিতে আপনি যে উপাদানগুলো কনফিগার করতে পারেন, তার তালিকা নিচে দেওয়া হলো।

<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> এলিমেন্টটি বাদ দিন।

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

<লুকআপক্যাশ> অ্যাট্রিবিউট

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

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

ক্যাশ থেকে ক্যাশ এন্ট্রি পুনরুদ্ধার করার পর যে ভেরিয়েবলে তা বরাদ্দ করা হবে, তা নির্দিষ্ট করে। ভেরিয়েবলটি অবশ্যই রাইটেবল (writable) হতে হবে। যদি ক্যাশ লুকআপ কোনো মান পুনরুদ্ধার না করে, তাহলে ভেরিয়েবলটি সেট করা হবে না।

<AssignTo>variable_to_receive_cached_value</AssignTo>

ডিফল্ট:

প্রযোজ্য নয়

উপস্থিতি:

প্রয়োজনীয়

প্রকার:

স্ট্রিং

<ক্যাশকী> উপাদান

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

<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>

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

<CacheLookupTimeoutInSeconds> এলিমেন্ট

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

<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>

ডিফল্ট:

৩০

উপস্থিতি:

ঐচ্ছিক

প্রকার:

পূর্ণসংখ্যা

<ক্যাশরিসোর্স> উপাদান

বার্তাগুলো কোন ক্যাশেতে সংরক্ষণ করা হবে তা নির্দিষ্ট করে।

এই পলিসি (এবং আপনার সংশ্লিষ্ট 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" />

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

বৈশিষ্ট্য

বৈশিষ্ট্য প্রকার ডিফল্ট প্রয়োজনীয় বর্ণনা
রেফারেন্স স্ট্রিং না

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

<ক্যাশকী>/<প্রিফিক্স> উপাদান

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

<Prefix>prefix_string</Prefix>

ডিফল্ট:

প্রযোজ্য নয়

উপস্থিতি:

ঐচ্ছিক

প্রকার:

স্ট্রিং

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

আপনি <Prefix> এলিমেন্টটি <CacheKey> এবং <Scope> এর সাথে একত্রে ব্যবহার করেন। আরও তথ্যের জন্য, “Working with cache keys” দেখুন।

<Scope> উপাদান

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

<Scope>scope_enumeration</Scope>

ডিফল্ট:

"একচেটিয়া"

উপস্থিতি:

ঐচ্ছিক

প্রকার:

স্ট্রিং

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

<CacheKey> তে যদি একটি <Prefix> এলিমেন্ট থাকে, তবে তা <Scope> এলিমেন্টের মানকে বাতিল করে দেয়। বৈধ মানগুলোর মধ্যে নিচের এনুমারেশনগুলো অন্তর্ভুক্ত।

আপনি <Scope> এলিমেন্টটি <CacheKey> এবং <Prefix> এর সাথে একত্রে ব্যবহার করেন। আরও তথ্যের জন্য, “Working with cache keys” দেখুন।

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

Global

পরিবেশে স্থাপন করা সমস্ত এপিআই প্রক্সির মধ্যে ক্যাশে কী শেয়ার করা হয়। ক্যাশে কী-টি orgName __ envName __ আকারে শুরুতে যুক্ত করা হয়।

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

Application

এপিআই প্রক্সি নামটি প্রিফিক্স হিসেবে ব্যবহৃত হয়।

ক্যাশ কী-টি orgName__envName__application Name আকারে শুরুতে যুক্ত করা হয়

Proxy

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

ক্যাশ কী-টি orgName__envName__ application Name__proxyEndpointName আকারে শুরুতে যুক্ত করা হয়।

Target

টার্গেটএন্ডপয়েন্ট কনফিগারেশনটি প্রিফিক্স হিসেবে ব্যবহৃত হয়।

orgName__envName__ application Name__targetEndpointName আকারে ক্যাশে কী শুরুতে যুক্ত করা হয়।

Exclusive

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

উপসর্গ হলো দুটি রূপের একটি:

  • যদি পলিসিটি ProxyEndpoint ফ্লো-এর সাথে সংযুক্ত থাকে, তাহলে প্রিফিক্সটি ApiProxyName_ProxyEndpointName এই ফর্মের হয়ে থাকে।
  • যদি পলিসিটি TargetEndpoint এ সংযুক্ত করা থাকে, তাহলে প্রিফিক্সটি ApiProxyName_TargetName এই ফর্মের হয়ে থাকে।

orgName__envName__ application Name__proxyNameITargetName আকারে ক্যাশে কী শুরুতে যুক্ত করা হয়

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

apifactory__test__weatherapi__16__default__apiAccessToken
.

ব্যবহারের নির্দেশাবলী

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

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

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

প্রবাহ পরিবর্তনশীল

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

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

ভেরিয়েবল প্রকার অনুমতি বর্ণনা
লুকআপক্যাশ.{পলিসি-নাম}.ক্যাশেরনাম স্ট্রিং শুধুমাত্র পঠনযোগ্য পলিসিতে ব্যবহৃত ক্যাশের নামটি ফেরত দেয়।
লুকআপক্যাশ.{পলিসি-নাম}.ক্যাশকী স্ট্রিং শুধুমাত্র পঠনযোগ্য ব্যবহৃত কী-টি ফেরত দেয়।
lookupcache.{policy-name}.cachehit বুলিয়ান শুধুমাত্র পঠনযোগ্য পলিসিটি নির্দিষ্ট ক্যাশ কী-এর জন্য কোনো মান খুঁজে পেলে সত্য হবে।
lookupcache.{policy-name}.assignto স্ট্রিং শুধুমাত্র পঠনযোগ্য যে ভেরিয়েবলে ক্যাশে বরাদ্দ করা হয়, সেটি ফেরত দেয়।

ত্রুটি কোড

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

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

N/A

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

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

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

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

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

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

N/A

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

N/A