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 पर सेट करें.

false ज़रूरी नहीं
enabled

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

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

सही ज़रूरी नहीं
async

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

false बहिष्कृत

<DisplayName> एलिमेंट

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

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

लागू नहीं

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

मौजूदगी ज़रूरी नहीं
Type String

<assignTo> एलिमेंट

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

<AssignTo>variable_to_receive_cached_value</AssignTo>

डिफ़ॉल्ट:

लागू नहीं

मौजूदगी:

ज़रूरी है

टाइप:

String

<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

मौजूदगी:

ज़रूरी नहीं

टाइप:

Integer

<cacheResource> एलिमेंट

इस नीति की मदद से, यह तय किया जाता है कि मैसेज किस कैश मेमोरी में सेव किए जाएं.

अगर यह नीति (और आपकी पॉप्यूलेट कैश और अमान्य कैश नीतियां) शामिल की गई कैश मेमोरी का इस्तेमाल कर रही है, तो इस एलिमेंट को पूरी तरह से छोड़ दें.

<CacheResource>cache_to_use</CacheResource>

डिफ़ॉल्ट:

लागू नहीं

मौजूदगी:

ज़रूरी नहीं

टाइप:

String

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

<cacheKey>/<Keyफ़्रैगमेंट> एलिमेंट

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

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

डिफ़ॉल्ट:

लागू नहीं

मौजूदगी:

ज़रूरी नहीं

टाइप:

लागू नहीं

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

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

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

एट्रिब्यूट

एट्रिब्यूट Type डिफ़ॉल्ट ज़रूरी है ब्यौरा
संदर्भ स्ट्रिंग नहीं

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

<cacheKey>/<प्रीफ़िक्स> एलिमेंट

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

<Prefix>prefix_string</Prefix>

डिफ़ॉल्ट:

लागू नहीं

मौजूदगी:

ज़रूरी नहीं

टाइप:

String

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

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

<Scope> एलिमेंट

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

<Scope>scope_enumeration</Scope>

डिफ़ॉल्ट:

"खास"

मौजूदगी:

ज़रूरी नहीं

टाइप:

String

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

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

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

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

Global

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

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

Application

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

कैश कुंजी, orgName__envName__ऐप्लिकेशननाम के तौर पर पहले जोड़ी जाती है.

Proxy

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

कैश कुंजी कुंजी को orgName__envName__ऐप्लिकेशनName__deployedRevisionNumber__exactEndpointName के तौर पर पहले जोड़ा जाता है.

Target

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

कैश कुंजी कुंजी orgName__envName__ऐप्लिकेशनName__deployedRevisionNumber__targetEndpointName के रूप में जोड़ी जाती है.

Exclusive

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

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

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

कैश कुंजी से पहले जोड़ा गया orgName__envName__ऐप्लिकेशनName__deployedRevisionNumber__ डेमोITargetName

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

apifactory__test__weatherapi__16__default__apiAccessToken
.

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

अलग-अलग कामों के लिए कैश मेमोरी में सेव करने के लिए, इस नीति का इस्तेमाल करें. रनटाइम के दौरान, lookupcache नीति कैश मेमोरी से कोई वैल्यू हासिल करती है. साथ ही, उस वैरिएबल को वैल्यू असाइन करती है जिसे आपने AssignmentsTo एलिमेंट की मदद से तय किया है (अगर कोई भी वैल्यू वापस नहीं लाई जाती है, तो वैरिएबल सेट नहीं किया जाएगा). यह, कॉन्फ़िगरेशन की मदद से बनाई गई कैश कुंजी पर आधारित वैल्यू ढूंढता है. यह कुंजी, cacheKey और Scope के एलिमेंट को जोड़ती है. दूसरे शब्दों में, पॉप्युलेट कैश नीति की मदद से कैश मेमोरी में जोड़ी गई किसी खास वैल्यू को वापस पाने के लिए, आपकी lookupकैश नीति में कैश मेमोरी से जुड़ी कुंजी से जुड़े एलिमेंट को उसी तरह कॉन्फ़िगर किया जाना चाहिए जिस तरह पॉप्युलेट कैश नीति में कॉन्फ़िगर किया गया हो.

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

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

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

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

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

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

गड़बड़ी कोड

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

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

लागू नहीं

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

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

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

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

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

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

लागू नहीं

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

लागू नहीं