LookupCache नीति

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

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

इस नीति का मकसद, सामान्य तौर पर कुछ समय के लिए कैश मेमोरी में डेटा सेव करने के लिए है. इसका इस्तेमाल, कैश मेमोरी भरने की नीति (एंट्री लिखने के लिए) और कैश मेमोरी अमान्य करने की नीति (एंट्री अमान्य करने के लिए) के साथ किया जाता है.

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

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

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

<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>, कैश मेमोरी में लिखी गई एंट्री के लिए कैश मेमोरी की कुंजी की वैल्यू को पहले जोड़ता है. <Prefix> एलिमेंट की वैल्यू, <Scope> एलिमेंट की वैल्यू को बदल देती है.

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

<Scope> एलिमेंट

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

<Scope>scope_enumeration</Scope>

डिफ़ॉल्ट:

"खास"

मौजूदगी:

वैकल्पिक

टाइप:

स्ट्रिंग

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

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

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

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

Global

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

अगर आपने <KeyFragment> apiAccessToken और <Global> स्कोप के साथ <CacheKey> एंट्री तय की है, तो हर एंट्री को 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 नीति की तरह ही कॉन्फ़िगर होने चाहिए.

कैश मेमोरी भरने की नीति, 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 प्रोसेसर कॉम्पोनेंट पर न बनाया गया हो.

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

लागू नहीं

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

लागू नहीं