पॉप्युलेट कैश मेमोरी की नीति

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

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

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

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

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

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

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

&lt;PopulateCache&gt; एट्रिब्यूट

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

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

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

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

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

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

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

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

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

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

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

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

गलत बहिष्कृत

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

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

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

लागू नहीं

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

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

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

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

कैश कुंजियों का साइज़ 2 केबी से ज़्यादा नहीं होना चाहिए.

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

डिफ़ॉल्ट:

लागू नहीं

मौजूदगी:

ज़रूरी है

टाइप:

लागू नहीं

<CacheKey> इसमें स्टोर किए गए डेटा के हर हिस्से का नाम बनाता है कैश मेमोरी.

रनटाइम पर, <KeyFragment> वैल्यू को, वैल्यू के पहले जोड़े गए <Scope> एलिमेंट वैल्यू या <Prefix> वैल्यू. उदाहरण के लिए, परिणामों की एक कैश कुंजी UserToken__apiAccessToken__&lt;value_of_client_id&gt;:

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

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

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

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

अगर इस नीति (और अपने संबंधित lookupकैश और अमान्यateकैश नीतियां) शामिल की गई 'शेयर की गई कैश मेमोरी' सुविधा का इस्तेमाल कर रही है.

<CacheResource>cache_to_use</CacheResource>

डिफ़ॉल्ट:

लागू नहीं

मौजूदगी:

वैकल्पिक

टाइप:

स्ट्रिंग

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

&lt;CacheKey&gt;/&lt;KeyFragment&gt; एलिमेंट

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

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

डिफ़ॉल्ट:

लागू नहीं

मौजूदगी:

वैकल्पिक

टाइप:

लागू नहीं

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

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

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

विशेषताएं

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

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

&lt;CacheKey&gt;/&lt;Prefix&gt; एलिमेंट

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

<Prefix>prefix_string</Prefix>

डिफ़ॉल्ट:

लागू नहीं

मौजूदगी:

वैकल्पिक

टाइप:

स्ट्रिंग

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

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

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

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

डिफ़ॉल्ट:

लागू नहीं

मौजूदगी:

ज़रूरी है

टाइप:

लागू नहीं

<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, UTC टाइम ज़ोन में, 24 घंटे की घड़ी में घंटा. उदाहरण के लिए, 14:30:00 का मतलब है दोपहर 2:30 बजे.

<ExpirySettings>
  <TimeOfDay ref="var-containing-time">expiry</TimeOfDay>
</ExpirySettings>
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

आपको संभावित चाइल्ड एलिमेंट में से किसी एक के बारे में बताना चाहिए. अगर एक से ज़्यादा एलिमेंट तय किए जाते हैं, प्राथमिकता के क्रम ये हैं:TimeoutInSeconds, ExpiryDate, TimeOfDay.

<ExpirySettings> के ऊपर दिए गए हर चाइल्ड एलिमेंट के साथ, चाइल्ड एलिमेंट पर ref एट्रिब्यूट का इस्तेमाल करने पर नीति नाम वाले कॉन्टेक्स्ट वैरिएबल से समयसीमा खत्म होने वाली वैल्यू को फिर से पाएं. अगर वैरिएबल की वैल्यू तय नहीं की गई है, इस नीति में, चाइल्ड एलिमेंट की लिटरल टेक्स्ट वैल्यू का इस्तेमाल किया जाता है.

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

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

<Scope>scope_enumeration</Scope>

डिफ़ॉल्ट:

"खास"

मौजूदगी:

वैकल्पिक

टाइप:

स्ट्रिंग

<Scope> सेटिंग एक कैश कुंजी तय करती है, जिसे <Scope> वैल्यू. उदाहरण के लिए, कैश मेमोरी में सेव की गई कुंजी को ऐसा तब माना जाएगा, जब दायरा Exclusive पर सेट किया गया है:

orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ]

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

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

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

Global

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

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

Application

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

कैश कुंजी को 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
.

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

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

<Source>source_variable</Source>

डिफ़ॉल्ट:

लागू नहीं

मौजूदगी:

ज़रूरी है

टाइप:

स्ट्रिंग

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

अलग-अलग कामों के लिए कैश मेमोरी में सेव करने के लिए, इस नीति का इस्तेमाल करें. रनटाइम के दौरान, <PopulateCache> नीति, उस वैरिएबल से डेटा लिखती है जिसे आपने <Source> एलिमेंट को कैश मेमोरी में सेव करने का तरीका <CacheResource> एलिमेंट. आपके पास <CacheKey>, <Scope> और <Prefix> एलिमेंट की मदद से, पासकोड तय किया जा सकता है वैल्यू को पाने के लिए, <LookupCache> नीति से इसका इस्तेमाल किया जा सकता है. इसका इस्तेमाल करें कैश मेमोरी में सेव की गई वैल्यू की समयसीमा खत्म होने के बाद, <ExpirySettings> एलिमेंट को कॉन्फ़िगर करें.

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

कैश मेमोरी की सीमाएं: कैश मेमोरी की अलग-अलग सीमाएं लागू की जा सकती हैं, जैसे कि नाम और वैल्यू का साइज़, कैश मेमोरी की कुल संख्या, कैश मेमोरी में आइटम की संख्या, और उनकी समयसीमा खत्म होने की वजह से.

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

कैश मेमोरी में सेव डेटा को एन्क्रिप्ट (सुरक्षित) करने के बारे में जानकारी

Edge for Public Cloud: कैश मेमोरी को सिर्फ़ एन्क्रिप्ट (सुरक्षित) किया जाता है PCI- और HIPAA की सुविधा चालू हो संगठनों ने. उन संगठनों के लिए एन्क्रिप्ट (सुरक्षित) करने का तरीका, संगठन के दौरान कॉन्फ़िगर किया गया है प्रॉविज़निंग.

गड़बड़ी कोड

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

रनटाइम की गड़बड़ियां

नीति के लागू होने पर ये गड़बड़ियां हो सकती हैं.

गड़बड़ी कोड एचटीटीपी स्थिति कब होता है
policies.populatecache.EntryCannotBeCached 500 एंट्री को कैश मेमोरी में सेव नहीं किया जा सकता. कैश मेमोरी में सेव किया जा रहा मैसेज ऑब्जेक्ट, ऐसी क्लास है जिसे क्रम में लगाया जा सकता है.

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

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

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

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

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

वैरिएबल कहां उदाहरण
fault.name="fault_name" fault_name गड़बड़ी का नाम है, जैसा कि ऊपर रनटाइम में गड़बड़ियां टेबल में बताया गया है. गड़बड़ी का नाम, गड़बड़ी के कोड का आखिरी हिस्सा होता है. fault.name = "EntryCannotBeCached"
populatecache.policy_name.failed policy_name, उपयोगकर्ता की ओर से बताया गया उस नीति का नाम है जिसमें गड़बड़ी हुई है. populatecache.POP-CACHE-1.failed = true

गड़बड़ी के रिस्पॉन्स का उदाहरण

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

गड़बड़ी के नियम का उदाहरण

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