PopulateCache নীতি

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

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

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

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

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

এই নীতিতে আপনি যে উপাদানগুলি কনফিগার করতে পারেন তা নিম্নলিখিতগুলি তালিকাভুক্ত করে৷

<PopulateCache async="false" continueOnError="false" enabled="true" name="Populate-Cache-1">
    <DisplayName>Populate Cache 1</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref=""/>
    </CacheKey>
    <!-- Omit this element if you're using the included shared cache. -->
    <CacheResource/>
    <Scope>Exclusive</Scope>
    <ExpirySettings>
        <TimeoutInSeconds>300</TimeoutInSeconds>
    </ExpirySettings>
    <Source>flowVar</Source>
</PopulateCache>

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

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

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

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

<CacheKey> উপাদান

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

ক্যাশে কীগুলি 2 KB আকারে সীমাবদ্ধ৷

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

ডিফল্ট:

N/A

উপস্থিতি:

প্রয়োজন

প্রকার:

N/A

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

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

ক্যাশে নির্দিষ্ট করে যেখানে বার্তা সংরক্ষণ করা উচিত।

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

<CacheResource>cache_to_use</CacheResource>

ডিফল্ট:

N/A

উপস্থিতি:

ঐচ্ছিক

প্রকার:

স্ট্রিং

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

<CacheKey>/<KeyFragment> উপাদান

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

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

ডিফল্ট:

N/A

উপস্থিতি:

ঐচ্ছিক

প্রকার:

N/A

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

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

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

গুণাবলী

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

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

<CacheKey>/<Prefix> উপাদান

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

<Prefix>prefix_string</Prefix>

ডিফল্ট:

N/A

উপস্থিতি:

ঐচ্ছিক

প্রকার:

স্ট্রিং

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

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

<ExpirySettings> উপাদান

কখন একটি ক্যাশে এন্ট্রির মেয়াদ শেষ হবে তা নির্দিষ্ট করে। উপস্থিত হলে, <TimeoutInSeconds> <TimeOfDay> এবং <ExpiryDate> উভয়কেই ওভাররাইড করে।

<ExpirySettings>
  <!-- use exactly one of the following child elements -->
  <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds>
  <ExpiryDate ref="date_variable">expiration_date</ExpiryDate>
  <TimeOfDay ref="time_variable">expiration_time</TimeOfDay>
</ExpirySettings>

ডিফল্ট:

N/A

উপস্থিতি:

প্রয়োজন

প্রকার:

N/A

<ExpirySettings> এর চাইল্ড উপাদান

ঠিক একটি শিশু উপাদান ব্যবহার করুন. নিচের সারণীটি <ExpirySettings> এর চাইল্ড এলিমেন্টের একটি বর্ণনা প্রদান করে:

শিশু উপাদান বর্ণনা
<TimeoutInSeconds>

সেকেন্ডের সংখ্যা যার পরে একটি ক্যাশে এন্ট্রির মেয়াদ শেষ হওয়া উচিত।

<ExpirySettings>
  <TimeoutInSeconds ref="var-containing-duration">expiry</TimeoutInSeconds>
</ExpirySettings>

এই উপাদানটি এখন-বঞ্চিত TimeoutInSec উপাদানটিকে প্রতিস্থাপন করে।

<ExpiryDate>

একটি ক্যাশে এন্ট্রির মেয়াদ শেষ হওয়ার তারিখ নির্দিষ্ট করে। mm-dd-yyyy ফর্মে একটি স্ট্রিং নির্দিষ্ট করুন।

<ExpirySettings>
  <ExpiryDate ref="var-containing-date">expiry</ExpiryDate>
</ExpirySettings>

যদি নির্দিষ্ট করা তারিখটি অতীতের হয়, তবে নীতিটি ক্যাশে করা এন্ট্রিতে সর্বাধিক সময়-টু-লাইভ প্রয়োগ করবে। এই সর্বোচ্চ 30 দিন।

<TimeOfDay>

দিনের সময় নির্দিষ্ট করে যেখানে একটি ক্যাশে এন্ট্রির মেয়াদ শেষ হওয়া উচিত। HH:mm:ss ফর্মে একটি স্ট্রিং নির্দিষ্ট করুন, যেখানে HH 24-ঘণ্টার ঘড়িতে UTC টাইম জোনে ঘন্টার প্রতিনিধিত্ব করে। উদাহরণস্বরূপ, 14:30:00 মানে বিকেল 2:30।

<ExpirySettings>
  <TimeOfDay ref="var-containing-time">expiry</TimeOfDay>
</ExpirySettings>

আপনার সম্ভাব্য শিশু উপাদানগুলির মধ্যে শুধুমাত্র একটি নির্দিষ্ট করা উচিত। আপনি যদি একাধিক উপাদান নির্দিষ্ট করেন, তাহলে অগ্রাধিকারের ক্রম হল: TimeoutInSeconds , ExpiryDate , TimeOfDay

<ExpirySettings> -এর উপরোক্ত প্রতিটি চাইল্ড এলিমেন্টের সাথে, আপনি যদি চাইল্ড এলিমেন্টে ঐচ্ছিক ref অ্যাট্রিবিউট উল্লেখ করেন, তাহলে পলিসি নামকৃত প্রসঙ্গ ভেরিয়েবল থেকে মেয়াদ শেষ হওয়ার মান পুনরুদ্ধার করবে। পরিবর্তনশীল সংজ্ঞায়িত না হলে, নীতি শিশু উপাদানের আক্ষরিক পাঠ্য মান ব্যবহার করে।

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

<CacheKey> উপাদানে <Prefix> উপাদান প্রদান করা না হলে একটি ক্যাশে কী-এর জন্য একটি উপসর্গ তৈরি করতে ব্যবহৃত গণনা।

<Scope>scope_enumeration</Scope>

ডিফল্ট:

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

উপস্থিতি:

ঐচ্ছিক

প্রকার:

স্ট্রিং

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

orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ]

যদি একটি <Prefix> উপাদান <CacheKey> -এ উপস্থিত থাকে, তাহলে এটি একটি <Scope> উপাদান মানকে ছাড়িয়ে যায়। বৈধ মান নীচের গণনা অন্তর্ভুক্ত.

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

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

Global

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

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

Application

API প্রক্সি নামটি উপসর্গ হিসাবে ব্যবহৃত হয়।

ক্যাশে কী orgName__envName__apiProxyName ফর্মে আগে লেখা আছে।

Proxy

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

ক্যাশে কী orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName আকারে আগে লেখা আছে।

Target

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

orgName__envName__apiProxyName__deployedRevisionNumber__targetEndpointName ফর্মে ক্যাশে কী প্রিপেন্ড করা হয়েছে।

Exclusive

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

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

  • যদি নীতিটি ProxyEndpoint প্রবাহের সাথে সংযুক্ত থাকে, তাহলে উপসর্গটি ApiProxyName_ProxyEndpointName আকারের হয়।
  • যদি নীতিটি TargetEndpoint এ সংযুক্ত থাকে, তাহলে উপসর্গটি ApiProxyName_TargetName ফর্মের হয়।

orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName ফর্মে ক্যাশে কী প্রিপেন্ড করা হয়েছে

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

apifactory__test__weatherapi__16__default__apiAccessToken
.

<উৎস> উপাদান

পরিবর্তনশীল নির্দিষ্ট করে যার মান ক্যাশে লেখা উচিত।

<Source>source_variable</Source>

ডিফল্ট:

N/A

উপস্থিতি:

প্রয়োজন

প্রকার:

স্ট্রিং

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

সাধারণ উদ্দেশ্য ক্যাশিং জন্য এই নীতি ব্যবহার করুন. রানটাইমে, <PopulateCache> নীতি আপনার <Source> উপাদানে নির্দিষ্ট করা পরিবর্তনশীল থেকে <CacheResource> এলিমেন্টে নির্দিষ্ট করা ক্যাশে ডেটা লেখে। আপনি <CacheKey> , <Scope> , এবং <Prefix> উপাদানগুলি ব্যবহার করতে পারেন একটি কী নির্দিষ্ট করতে যা আপনি <LookupCache> নীতি থেকে মান পুনরুদ্ধার করতে ব্যবহার করতে পারেন। ক্যাশ করা মান মেয়াদ শেষ হলে কনফিগার করতে <ExpirySettings> উপাদানটি ব্যবহার করুন।

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

ক্যাশে সীমা : বিভিন্ন ক্যাশে সীমা প্রযোজ্য, যেমন নাম এবং মান আকার, ক্যাশের মোট সংখ্যা, একটি ক্যাশে আইটেমের সংখ্যা এবং মেয়াদ শেষ।

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

ক্যাশে এনক্রিপশন সম্পর্কে

পাবলিক ক্লাউডের জন্য এজ: ক্যাশে শুধুমাত্র PCI - এবং HIPAA- সক্ষম সংস্থাগুলিতে এনক্রিপ্ট করা হয়৷ এই সংস্থাগুলির জন্য এনক্রিপশন সংস্থার ব্যবস্থা করার সময় কনফিগার করা হয়।

ত্রুটি কোড

This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP Status Occurs when
policies.populatecache.EntryCannotBeCached 500 An entry cannot be cached. The message object being cached is not an instance of a class that is Serializable.

Deployment errors

These errors can occur when you deploy a proxy containing this policy.

Error name Cause Fix
InvalidCacheResourceReference This error occurs if the <CacheResource> element in the PopulateCache policy is set to a name that does not exist in the environment where the API proxy is being deployed.
CacheNotFound The cache specified in the <CacheResource> element does not exist.

Fault variables

These variables are set when this policy triggers an error. For more information, see What you need to know about policy errors.

Variables Where Example
fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name = "EntryCannotBeCached"
populatecache.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. populatecache.POP-CACHE-1.failed = true

Example error response

{
  "fault": {
    "faultstring": "[entry] can not be cached. Only serializable entries are cached.",
    "detail": {
      "errorcode": "steps.populatecache.EntryCannotBeCached"
    }
  }
}

Example fault rule

<FaultRule name="Populate Cache Fault">
    <Step>
        <Name>AM-EntryCannotBeCached</Name>
        <Condition>(fault.name Matches "EntryCannotBeCached") </Condition>
    </Step>
    <Condition>(populatecache.POP-CACHE-1.failed = true) </Condition>
</FaultRule>