LookupCache नीति

यहां Apigee Edge के दस्तावेज़ देखे जा रहे हैं.
पर जाएं Apigee X दस्तावेज़.
info

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

इस नीति का इस्तेमाल, सामान्य मकसद से कुछ समय के लिए कैश मेमोरी का इस्तेमाल करने के लिए किया जाता है. इसका इस्तेमाल, कैश में एंट्री लिखने के लिए, Populate Cache नीति और एंट्री को अमान्य करने के लिए, Invalidate Cache नीति के साथ किया जाता है.

बैकएंड संसाधनों के रिस्पॉन्स को कैश करने के लिए, Response 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> एलिमेंट को शामिल न करें.

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

<LookupCache> एट्रिब्यूट

यहां दी गई टेबल में, ऐसे एट्रिब्यूट के बारे में बताया गया है जो नीति के सभी पैरंट एलिमेंट में एक जैसे होते हैं:

एट्रिब्यूट ब्यौरा डिफ़ॉल्ट मौजूदगी
name

नीति का अंदरूनी नाम. name एट्रिब्यूट की वैल्यू ये काम कर सकती है: अक्षरों, संख्याओं, स्पेस, हाइफ़न, अंडरस्कोर, और फ़ुलस्टॉप को शामिल करें. यह मान नहीं हो सकता 255 वर्णों से ज़्यादा होने चाहिए.

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

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

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

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

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

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

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

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

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

गलत बहिष्कृत

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

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

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

लागू नहीं

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

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

<AssignTo> एलिमेंट

यह उस वैरिएबल के बारे में बताता है जिसमें कैश मेमोरी से वापस पाने के बाद, कैश एंट्री असाइन की जाती है. वैरिएबल को लिखा जा सकता है. अगर कैश मेमोरी में खोज करने पर कोई वैल्यू नहीं मिलती है, तो वैरिएबल सेट नहीं किया जाएगा.

<AssignTo>variable_to_receive_cached_value</AssignTo>

डिफ़ॉल्ट:

लागू नहीं

मौजूदगी:

ज़रूरी है

टाइप:

स्ट्रिंग

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

<CacheKey> एलिमेंट का इस्तेमाल, <Prefix> और <Scope> के साथ किया जाता है. ज़्यादा जानकारी के लिए, कैश कुंजियों के साथ काम करना लेख पढ़ें.

<CacheLookupTimeoutInSeconds> एलिमेंट

यह उन सेकंड की संख्या के बारे में बताता है जिनके बाद, कैश मेमोरी में खोज करने पर कोई वैल्यू न मिलने को कैश मिस माना जाएगा. ऐसा होने पर, फ़्लो, कैश मिस पाथ पर वापस आ जाता है.

<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>

डिफ़ॉल्ट:

30

मौजूदगी:

वैकल्पिक

टाइप:

पूर्णांक

<CacheResource> एलिमेंट

यह उस कैश मेमोरी के बारे में बताता है जिसमें मैसेज सेव किए जाने चाहिए.

अगर यह नीति (और इससे जुड़ी 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> के साथ किया जाता है. ज़्यादा जानकारी के लिए, कैश कुंजियों के साथ काम करना लेख पढ़ें.

विशेषताएं

एट्रिब्यूट टाइप डिफ़ॉल्ट ज़रूरी है ब्यौरा
ref स्ट्रिंग नहीं

वह वैरिएबल जिससे वैल्यू लेनी है. अगर इस एलिमेंट में लिटरल वैल्यू शामिल है, तो इसका इस्तेमाल नहीं किया जाना चाहिए.

<CacheKey>/<Prefix> एलिमेंट

यह उस वैल्यू के बारे में बताता है जिसका इस्तेमाल, कैश कुंजी के प्रीफ़िक्स के तौर पर किया जाना चाहिए.

<Prefix>prefix_string</Prefix>

डिफ़ॉल्ट:

लागू नहीं

मौजूदगी:

वैकल्पिक

टाइप:

स्ट्रिंग

जब आपको <Scope> में दी गई वैल्यू के बजाय, अपनी वैल्यू तय करनी हो , तब <Scope> के बजाय इस वैल्यू का इस्तेमाल करें. अगर तय किया जाता है, तो <Prefix> कैश मेमोरी में लिखी गई एंट्री के लिए, कैश कुंजी की वैल्यू के पहले जोड़ा जाता है. A <Prefix> एलिमेंट की वैल्यू, <Scope> एलिमेंट की वैल्यू को बदल देती है.

<Prefix> एलिमेंट का इस्तेमाल, <CacheKey> और <Scope> के साथ किया जाता है. ज़्यादा जानकारी के लिए, कैश कुंजियों के साथ काम करना लेख पढ़ें.

<Scope> एलिमेंट

यह एक ऐसा एनमरेशन है जिसका इस्तेमाल, कैश कुंजी के लिए प्रीफ़िक्स बनाने के लिए किया जाता है. ऐसा तब किया जाता है, जब <Prefix> एलिमेंट, <CacheKey> एलिमेंट में नहीं दिया जाता.

<Scope>scope_enumeration</Scope>

डिफ़ॉल्ट:

"एक्सक्लूसिव"

मौजूदगी:

वैकल्पिक

टाइप:

स्ट्रिंग

<Scope> सेटिंग, कैश कुंजी तय करती है. यह कुंजी, <Scope> की वैल्यू के हिसाब से पहले जोड़ी जाती है. उदाहरण के लिए, स्कोप को Exclusive पर सेट करने पर, कैश कुंजी इस फ़ॉर्मैट में होगी: orgName__envName__applicationName__proxy|TargetName__ [ serializedCacheKey ].

अगर <Prefix> एलिमेंट <CacheKey> में मौजूद है, तो यह <Scope> एलिमेंट की वैल्यू की जगह ले लेता है. मान्य वैल्यू में, नीचे दिए गए एनमरेशन शामिल हैं.

<Scope> एलिमेंट का इस्तेमाल, <CacheKey> और <Prefix> के साथ किया जाता है. ज़्यादा जानकारी के लिए, कैश कुंजियों के साथ काम करना लेख पढ़ें.

स्वीकार की जा सकने वाली वैल्यू

Global

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

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

Application

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

कैश कुंजी, orgName__envName__applicationName के फ़ॉर्मैट में पहले जोड़ी जाती है.

Proxy

ProxyEndpoint कॉन्फ़िगरेशन का इस्तेमाल, प्रीफ़िक्स के तौर पर किया जाता है.

कैश कुंजी, orgName__envName__applicationName__proxyEndpointName के फ़ॉर्मैट में पहले जोड़ी जाती है.

Target

TargetEndpoint कॉन्फ़िगरेशन का इस्तेमाल, प्रीफ़िक्स के तौर पर किया जाता है.

कैश कुंजी, orgName__envName__applicationName__targetEndpointName के फ़ॉर्मैट में पहले जोड़ी जाती है.

Exclusive

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

प्रीफ़िक्स, इन दो फ़ॉर्मैट में से एक होता है:

  • अगर नीति को ProxyEndpoint फ़्लो से जोड़ा जाता है, तो प्रीफ़िक्स ApiProxyName_ProxyEndpointName के फ़ॉर्मैट में होता है.
  • अगर नीति को TargetEndpoint से जोड़ा जाता है, तो प्रीफ़िक्स ApiProxyName_TargetName के फ़ॉर्मैट में होता है.

कैश कुंजी, orgName__envName__applicationName__proxyNameITargetName के फ़ॉर्मैट में पहले जोड़ी जाती है

उदाहरण के लिए, पूरी स्ट्रिंग इस तरह दिख सकती है:

apifactory__test__weatherapi__16__default__apiAccessToken
.

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

सामान्य मकसद से कैश मेमोरी का इस्तेमाल करने के लिए, इस नीति का इस्तेमाल करें. रनटाइम के दौरान, LookupCache नीति, कैश मेमोरी से कोई वैल्यू वापस पाती है. इसके बाद, AssignTo एलिमेंट के साथ तय किए गए वैरिएबल को वैल्यू असाइन करती है. अगर कोई वैल्यू वापस नहीं मिलती है, तो वैरिएबल सेट नहीं किया जाएगा. यह कैश कुंजी के आधार पर वैल्यू खोजती है. कैश कुंजी, CacheKey और Scope एलिमेंट को मिलाकर बनाए गए कॉन्फ़िगरेशन से बनती है. दूसरे शब्दों में कहें, तो PopulateCache नीति की मदद से कैश मेमोरी में जोड़ी गई किसी खास वैल्यू को वापस पाने के लिए, आपकी LookupCache नीति में कैश कुंजी से जुड़े एलिमेंट, PopulateCache नीति की तरह ही कॉन्फ़िगर किए जाने चाहिए.

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

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

फ़्लो वैरिएबल

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

LookupCache नीति में तय की गई कैश मेमोरी के बिहेवियर को पसंद के मुताबिक बनाने के बाद, पहले से तय किए गए ये फ़्लो वैरिएबल उपलब्ध होते हैं.

वैरिएबल टाइप अनुमति ब्यौरा
lookupcache.{policy-name}.cachename स्ट्रिंग रीड-ओनली नीति में इस्तेमाल किए गए कैश मेमोरी का नाम दिखाता है.
lookupcache.{policy-name}.cachekey स्ट्रिंग रीड-ओनली इस्तेमाल की गई कुंजी दिखाता है.
lookupcache.{policy-name}.cachehit बूलियन रीड-ओनली अगर नीति में, तय की गई कैश कुंजी के लिए कोई वैल्यू मिली है, तो 'सही है' आउटपुट मिलता है.
lookupcache.{policy-name}.assignto स्ट्रिंग रीड-ओनली वह वैरिएबल दिखाता है जिसे कैश मेमोरी असाइन की गई है.

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

इस सेक्शन में गड़बड़ी के मैसेज और फ़्लो वैरिएबल के बारे में बताया गया है. ये वैरिएबल तब सेट किए जाते हैं, जब इस नीति के तहत कोई गड़बड़ी ट्रिगर होती है. यह जानकारी जानना ज़रूरी है कि क्या प्रॉक्सी के लिए गड़बड़ी के नियम बनाए जा रहे हैं. ज़्यादा जानने के लिए, नीति से जुड़ी गड़बड़ियों के बारे में आपके लिए ज़रूरी जानकारी और गड़बड़ियों को ठीक करने के तरीके देखें.

गड़बड़ी कोड प्रीफ़िक्स

लागू नहीं

रनटाइम से जुड़ी गड़बड़ियां

इस नीति के तहत रनटाइम में कोई गड़बड़ी नहीं होती है.

डिप्लॉयमेंट से जुड़ी गड़बड़ियां

ये गड़बड़ियां तब हो सकती हैं, जब इस नीति वाले किसी प्रॉक्सी को डिप्लॉय किया जाता है.

गड़बड़ी का नाम वजह समाधान
InvalidCacheResourceReference यह गड़बड़ी तब होती है, जब <CacheResource> एलिमेंट को किसी ऐसे नाम पर सेट किया गया हो जो उस एनवायरमेंट में मौजूद नहीं है जहां एपीआई प्रॉक्सी को डिप्लॉय किया जा रहा है.
InvalidTimeout अगर <CacheLookupTimeoutInSeconds> एलिमेंट को नेगेटिव नंबर पर सेट किया गया है, तो एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता.
CacheNotFound यह गड़बड़ी तब होती है, जब गड़बड़ी के मैसेज में बताए गए कैश को किसी खास Message प्रोसेसर कॉम्पोनेंट पर न बनाया गया हो.

गड़बड़ी वाले वैरिएबल

लागू नहीं

गड़बड़ी के जवाब का उदाहरण

लागू नहीं