InvalidateCache নীতি

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

ক্যাশে থেকে কীভাবে ক্যাশে করা ভ্যালু সরিয়ে দেওয়া উচিত তা কনফিগার করে।

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

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

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

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

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

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

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

<CacheContext> এলিমেন্ট

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

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

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

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

<CacheResource> এলিমেন্ট

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

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

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

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

অ্যাট্রিবিউট বিবরণ ডিফল্ট উপস্থিতি ধরন
ref যে ভেরিয়েবেল থেকে ভ্যালু পেতে হবে। এই এলিমেন্টে লিটেরাল ভ্যালু থাকলে এটি ব্যবহার করা উচিত নয়। প্রযোজ্য নয় ঐচ্ছিক স্ট্রিং

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

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

<Prefix>prefix_string</Prefix>

ডিফল্ট:

প্রযোজ্য নয়

উপস্থিতি:

ঐচ্ছিক

টাইপ:

স্ট্রিং

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

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

<CacheContext>/<ProxyName> এলিমেন্ট

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

<ProxyName>proxy_for_which_data_was_cached</ProxyName>

ডিফল্ট:

প্রযোজ্য নয়

উপস্থিতি:

ঐচ্ছিক

টাইপ:

স্ট্রিং

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

অ্যাট্রিবিউট বিবরণ ডিফল্ট উপস্থিতি ধরন
ref যে ভেরিয়েবেল থেকে ভ্যালু পেতে হবে। এই এলিমেন্টে লিটেরাল ভ্যালু থাকলে এটি ব্যবহার করা উচিত নয়। প্রযোজ্য নয় ঐচ্ছিক স্ট্রিং

<PurgeChildEntries> এলিমেন্ট

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

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

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

<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>

ডিফল্ট:

মিথ্যা

উপস্থিতি:

ঐচ্ছিক

টাইপ:

বুলিয়ান

<Scope> এলিমেন্ট

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

<Scope>scope_enumeration</Scope>

ডিফল্ট:

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

উপস্থিতি:

ঐচ্ছিক

টাইপ:

স্ট্রিং

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

orgName__envName__applicationName__deployedRevisionNumber__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__deployedRevisionNumber__proxyEndpointName এই ফর্ম্যাটে আগে থেকে যোগ করা থাকে।

Target

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

ক্যাশে কী এইভাবে আগে থেকে যোগ করা হয় orgName__envName__applicationName__deployedRevisionNumber__targetEndpointName .

Exclusive

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

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

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

ক্যাশে কী, এই ফর্মের সাথে যুক্ত করা হয়েছে orgName__envName__applicationName__deployedRevisionNumber__proxyNameITargetName

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

apifactory__test__weatherapi__16__default__apiAccessToken
.

<CacheContext>/<TargetName> এলিমেন্ট

যে টার্গেট এন্ডপয়েন্টের জন্য ডেটা ক্যাশে করা হয়েছে তার নাম উল্লেখ করে।

<TargetName>endpoint_for_which_data_was_cached</TargetName>

ডিফল্ট:

প্রযোজ্য নয়

উপস্থিতি:

ঐচ্ছিক

টাইপ:

স্ট্রিং

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

অ্যাট্রিবিউট বিবরণ ডিফল্ট উপস্থিতি ধরন
ref যে ভেরিয়েবেল থেকে ভ্যালু পেতে হবে। এই এলিমেন্টে লিটেরাল ভ্যালু থাকলে এটি ব্যবহার করা উচিত নয়। প্রযোজ্য নয় ঐচ্ছিক স্ট্রিং

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

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

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

সমস্যার কোড

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

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

N/A

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

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

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

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

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

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

N/A

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

N/A