ক্যাশে নীতি বাতিল করুন

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

ক্যাশে থাকা মানগুলো কীভাবে ক্যাশ থেকে মুছে ফেলা হবে তা নির্ধারণ করে।

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

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

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

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

<InvalidateCache async="false" continueOnError="false" enabled="true" name="policy-name">
    <DisplayName>Policy Name</DisplayName>
    <CacheKey>
        <Prefix>prefix_string</Prefix>
        <KeyFragment ref="variable_reference"/>
        <KeyFragment>fragment_string</KeyFragment>
    </CacheKey>
    <!-- Omit this element if you're using the included shared cache. -->
    <CacheResource>cache_to_use</CacheResource>
    <Scope>scope_enumeration</Scope>
    <CacheContext>
        <APIProxyName>application_that_added_the_entry</APIProxyName>
        <ProxyName>proxy_for_which_data_was_cached</ProxyName>
        <TargetName>endpoint_for_which_data_was_cached</TargetName>
    </CacheContext>
    <PurgeChildEntries>true_to_purge_all_child_entries</PurgeChildEntries>
</InvalidateCache>

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

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

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

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

<CacheContext>/<APIProxyName> উপাদান

যে অ্যাপ্লিকেশনটি ক্যাশ এন্ট্রিটি যোগ করেছে, তার নাম নির্দিষ্ট করে।

<APIProxyName>application_that_added_the_entry</APIProxyName>

বৈশিষ্ট্য

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি প্রকার
রেফারেন্স অ্যাপ্লিকেশন নাম সহ ভেরিয়েবল। প্রযোজ্য নয় ঐচ্ছিক স্ট্রিং

<CacheContext> উপাদান

যখন কোনো Prefix এলিমেন্টের মান নির্দিষ্ট করা থাকে না, তখন কীভাবে একটি ক্যাশ কী তৈরি করতে হবে, অথবা অন্য কোনো এপিআই প্রক্সি দ্বারা যোগ করা ক্যাশ এন্ট্রিগুলি মুছে ফেলতে হবে, তা নির্দিষ্ট করে।

<CacheContext>
  <APIProxyName ref="variable_name">application_that_added_the_entry</APIProxyName>
  <TargetName ref="variable_name">endpoint_for_which_data_was_cached</TargetName>
  <ProxyName ref="variable_name">proxy_for_which_data_was_cached</ProxyName>
</CacheContext>

CacheKey তৈরি করতে ব্যবহৃত হয়। যখন অন্য কোনো API প্রক্সি দ্বারা যোগ করা ক্যাশ এন্ট্রিগুলি মুছে ফেলার জন্য কোনো CacheKey প্রিফিক্স (অর্থাৎ, একটি কাস্টম প্রিফিক্স) ব্যবহার করা হয় না, তখন APIProxyName, ProxyName, এবং TargetName-এর মানগুলি বাধ্যতামূলক।

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

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

<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> এর সাথে একত্রে ব্যবহার করেন। আরও তথ্যের জন্য, “ক্যাশ কী নিয়ে কাজ করা” দেখুন।

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

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

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

<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” দেখুন।

<CacheContext>/<ProxyName> উপাদান

যে প্রক্সির জন্য ডেটা ক্যাশ করা হয়েছিল, তার নাম নির্দিষ্ট করে।

<ProxyName>proxy_for_which_data_was_cached</ProxyName>

ডিফল্ট:

প্রযোজ্য নয়

উপস্থিতি:

ঐচ্ছিক

প্রকার:

স্ট্রিং

বৈশিষ্ট্য

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি প্রকার
রেফারেন্স যে ভেরিয়েবল থেকে মানটি নেওয়া হবে। যদি এই এলিমেন্টটিতে কোনো আক্ষরিক মান থাকে, তবে এটি ব্যবহার করা উচিত নয়। প্রযোজ্য নয় ঐচ্ছিক স্ট্রিং

<PurgeChildEntries> উপাদান

এই পলিসির জন্য কনফিগার করা একটি <KeyFragment> এলিমেন্ট দ্বারা নির্ধারিত মানের সাথে মিলে যায় এমন ক্যাশ এন্ট্রিগুলি মুছে ফেলার জন্য true নির্বাচন করুন। ক্যাশ কী-এর অন্যান্য অংশে, যেমন <Prefix> এলিমেন্টে থাকা মানগুলি বিবেচনা করা হয় না।

মনে রাখবেন যে <KeyFragment> এলিমেন্টটি অবশ্যই নির্দিষ্ট করতে হবে। যদি তা না করা হয়, তাহলে <PurgeChildEntries> এর জন্য true সেট করলে ক্যাশে থাকা সমস্ত এন্ট্রি মুছে যেতে পারে।

একই কী ফ্র্যাগমেন্ট ভ্যালুর সমস্ত ক্যাশ এন্ট্রি বাতিল করা, একবারে একাধিক সম্পর্কিত এন্ট্রি মুছে ফেলার একটি কার্যকর উপায় হতে পারে।

<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>

ডিফল্ট:

মিথ্যা

উপস্থিতি:

ঐচ্ছিক

প্রকার:

বুলিয়ান

<Scope> উপাদান

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

<Scope>scope_enumeration</Scope>

ডিফল্ট:

"একচেটিয়া"

উপস্থিতি:

ঐচ্ছিক

প্রকার:

স্ট্রিং

<Scope> সেটিংটি একটি ক্যাশ কী নির্ধারণ করে, যা <Scope> মানের উপর ভিত্তি করে শুরুতে যুক্ত হয়। উদাহরণস্বরূপ, যখন স্কোপ Exclusive এ সেট করা হয়, তখন একটি ক্যাশ কী নিম্নলিখিত রূপ ধারণ করবে:

orgName__envName__ application Name__deployedRevisionNumber__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__applicationName__deployedRevisionNumber__proxyEndpointName আকারে শুরুতে যুক্ত করা হয়।

Target

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

orgName__envName__applicationName__deployedRevisionNumber__targetEndpointName আকারে ক্যাশে কী শুরুতে যুক্ত করা হয়

Exclusive

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

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

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

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

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

apifactory__test__weatherapi__16__default__apiAccessToken
.

<CacheContext>/<TargetName> উপাদান

যে টার্গেট এন্ডপয়েন্টের জন্য ডেটা ক্যাশ করা হয়েছিল, তার নাম নির্দিষ্ট করে।

<TargetName>endpoint_for_which_data_was_cached</TargetName>

ডিফল্ট:

প্রযোজ্য নয়

উপস্থিতি:

ঐচ্ছিক

প্রকার:

স্ট্রিং

বৈশিষ্ট্য

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি প্রকার
রেফারেন্স যে ভেরিয়েবল থেকে মানটি নেওয়া হবে। যদি এই এলিমেন্টটিতে কোনো আক্ষরিক মান থাকে, তবে এটি ব্যবহার করা উচিত নয়। প্রযোজ্য নয় ঐচ্ছিক স্ট্রিং

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

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

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

ত্রুটি কোড

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

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

N/A

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

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

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

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

ত্রুটির নাম কারণ ঠিক করুন
InvalidCacheResourceReference এই ত্রুটিটি ঘটে যদি <CacheResource> InvalidateCache নীতিতে উপাদানটি এমন একটি নামে সেট করা হয় যা পরিবেশে যেখানে API প্রক্সি স্থাপন করা হচ্ছে সেখানে বিদ্যমান নেই৷
CacheNotFound ত্রুটি বার্তায় উল্লিখিত নির্দিষ্ট ক্যাশে একটি নির্দিষ্ট বার্তা প্রসেসর উপাদানে তৈরি না হলে এই ত্রুটি ঘটে।

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

N/A

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

N/A