अमान्येट कैश नीति

आपको Apigee Edge का दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ पर जाएं.
जानकारी

यह कुकी कॉन्फ़िगर करती है कि कैश मेमोरी से कैश की गई वैल्यू को कैसे हटाया जाना चाहिए.

इस नीति का इस्तेमाल, सामान्य मकसद के लिए कुछ समय के लिए कैश मेमोरी में सेव करने के लिए किया जाता है. इसका इस्तेमाल, Populate Cache policy (एंट्री लिखने के लिए) और Lookup Cache policy (कैश मेमोरी की एंट्री पढ़ने के लिए) के साथ किया जाता है.

बैकएंड संसाधनों के जवाबों को कैश मेमोरी में सेव करने के लिए, जवाब को कैश मेमोरी में सेव करने की नीति देखें.

एलिमेंट का रेफ़रंस

यहां उन एलिमेंट की सूची दी गई है जिन्हें इस नीति के तहत कॉन्फ़िगर किया जा सकता है.

<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 वर्णों से ज़्यादा होने चाहिए.

इसके अलावा, नीति को लेबल करने के लिए, <DisplayName> एलिमेंट का इस्तेमाल करें प्रबंधन यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर को अलग, आम भाषा में इस्तेमाल करने वाले नाम के साथ किया जा सकता है.

लागू नहीं ज़रूरी है
continueOnError

किसी नीति के काम न करने पर, गड़बड़ी दिखाने के लिए false पर सेट करें. यह उम्मीद है व्यवहार की जानकारी देने वाला डेटा.

नीति के लागू होने के बाद भी फ़्लो को एक्ज़ीक्यूट करने के लिए, इसे true पर सेट करें विफल होता है.

गलत वैकल्पिक
enabled

नीति को लागू करने के लिए, true पर सेट करें.

नीति को बंद करने के लिए, false पर सेट करें. नीति लागू किया जाता है, भले ही वह किसी फ़्लो से जुड़ा रहता हो.

सही वैकल्पिक
async

यह एट्रिब्यूट अब काम नहीं करता.

गलत बहिष्कृत

&lt;DisplayName&gt; एलिमेंट

इस कॉलम में नीति को लेबल करने के लिए, name एट्रिब्यूट के साथ-साथ इस्तेमाल करें मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर, जिसका नाम अलग और सामान्य भाषा में है.

<DisplayName>Policy Display Name</DisplayName>
डिफ़ॉल्ट

लागू नहीं

अगर आप इस एलिमेंट को छोड़ देते हैं, तो नीति की name एट्रिब्यूट की वैल्यू यह होगी इस्तेमाल किया गया.

मौजूदगी वैकल्पिक
टाइप स्ट्रिंग

<CacheContext>/<APIProxyName> एलिमेंट

यह उस ऐप्लिकेशन का नाम बताता है जिसने कैश मेमोरी की एंट्री जोड़ी है.

<APIProxyName>application_that_added_the_entry</APIProxyName>

विशेषताएं

एट्रिब्यूट ब्यौरा डिफ़ॉल्ट मौजूदगी टाइप
ref ऐप्लिकेशन के नाम वाला वैरिएबल. लागू नहीं वैकल्पिक स्ट्रिंग

<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 बनाने के लिए किया जाता है. जब किसी दूसरी एपीआई प्रॉक्सी से जोड़ी गई कैश मेमोरी की एंट्री को मिटाने के लिए, 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> के लिए true सेट करने पर, हो सकता है कि कैश मेमोरी में मौजूद सभी एंट्री मिट जाएं.

एक ही कुंजी फ़्रैगमेंट वैल्यू की सभी कैश मेमोरी एंट्री को अमान्य करना, एक साथ कई मिलती-जुलती एंट्री हटाने का एक उपयोगी तरीका हो सकता है.

<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

कैश कुंजी, एनवायरमेंट में डिप्लॉय की गई सभी एपीआई प्रॉक्सी के साथ शेयर की जाती है. कैश मेमोरी की कुंजी को orgName __ envName __ के तौर पर जोड़ा जाता है.

अगर आपने <KeyFragment> apiAccessToken और <Global> स्कोप के साथ <CacheKey> एंट्री तय की है, तो हर एंट्री को orgName__envName__apiAccessToken के तौर पर सेव किया जाता है. इसके बाद, ऐक्सेस टोकन की क्रम से लगाई गई वैल्यू सेव की जाती है. 'apifactory' नाम के संगठन में 'test' नाम के एनवायरमेंट में डिप्लॉय की गई एपीआई प्रॉक्सी के लिए, ऐक्सेस टोकन को इस कैश मेमोरी की कुंजी के तहत सेव किया जाएगा: apifactory__test__apiAccessToken.

Application

एपीआई प्रॉक्सी के नाम का इस्तेमाल प्रीफ़िक्स के तौर पर किया जाता है.

कैश मेमोरी की कुंजी को इस फ़ॉर्म में पहले से जोड़ दिया जाता है: 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 वह वैरिएबल जिससे वैल्यू मिलती है. अगर इस एलिमेंट में लिटरल वैल्यू शामिल है, तो इसका इस्तेमाल नहीं किया जाना चाहिए. लागू नहीं वैकल्पिक स्ट्रिंग

इस्तेमाल की जानकारी

PopulateCache नीति, LookupCache नीति, और InvalidateCache नीति के साथ सामान्य मकसद के लिए कैश मेमोरी का इस्तेमाल किया जाता है. इसमें, आपके कॉन्फ़िगर की गई कैश मेमोरी या डिफ़ॉल्ट रूप से शामिल की गई शेयर की गई कैश मेमोरी का इस्तेमाल किया जाता है. ज़्यादातर मामलों में, शेयर की गई कैश मेमोरी आपकी ज़रूरतों को पूरा कर सकती है. इस कैश मेमोरी का इस्तेमाल करने के लिए, <CacheResource> एलिमेंट को हटा दें.

कैश मेमोरी को कॉन्फ़िगर करने के बारे में ज़्यादा जानने के लिए, एनवायरमेंट कैश मेमोरी बनाना और उसमें बदलाव करना लेख पढ़ें. डेटा स्टोर के बारे में ज़्यादा जानने के लिए, कैश मेमोरी की इंटरनल प्रोसेस लेख पढ़ें.

गड़बड़ी के कोड

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

Error code prefix

N/A

Runtime errors

This policy does not throw any runtime errors.

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 InvalidateCache policy is set to a name that does not exist in the environment where the API proxy is being deployed.
CacheNotFound This error occurs if the specific cache mentioned in the error message has not been created on a specific Message Processor component.

Fault variables

N/A

Example error response

N/A