Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं. जानकारी
इस नीति से यह कॉन्फ़िगर किया जाता है कि कैश मेमोरी में सेव की गई वैल्यू को रनटाइम के दौरान कैसे लिखा जाना चाहिए.
कैश मेमोरी को भरने से जुड़ी नीति को, सामान्य मकसद वाली कैश मेमोरी में सेव करने के लिए बनाया गया है. यह एंट्री कम समय के लिए की जाती है. इसका इस्तेमाल लुकअप कैश नीति (कैश मेमोरी में सेव की गई एंट्री को पढ़ने के लिए) और कैश मेमोरी को अमान्य करें नीति (एंट्री अमान्य करने के लिए) के साथ मिलकर किया जाता है.
बैकएंड संसाधनों के रिस्पॉन्स को कैश मेमोरी में सेव करने के लिए, रिस्पॉन्स कैश से जुड़ी नीति देखें.
एलिमेंट का रेफ़रंस
यहां उन एलिमेंट की सूची दी गई है जिन्हें इस नीति पर कॉन्फ़िगर किया जा सकता है.
<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>
<Populatecache> एट्रिब्यूट
इस टेबल में उन एट्रिब्यूट के बारे में बताया गया है जो नीति के सभी पैरंट एलिमेंट के लिए एक जैसे होते हैं:
एट्रिब्यूट | ब्यौरा | डिफ़ॉल्ट | मौजूदगी |
---|---|---|---|
name |
नीति का अंदरूनी नाम. इसके अलावा, मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर में नीति को आम भाषा में अलग नाम से लेबल करने के लिए, |
लागू नहीं | ज़रूरी है |
continueOnError |
इस नीति को किसी नीति के काम न करने पर भी फ़्लो एक्ज़ीक्यूट करने की प्रोसेस को जारी रखने के लिए, |
false | ज़रूरी नहीं |
enabled |
नीति लागू करने के लिए, नीति को बंद करने के लिए, |
सही | ज़रूरी नहीं |
async |
यह एट्रिब्यूट अब काम नहीं करता. |
false | बहिष्कृत |
<DisplayName> एलिमेंट
मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर में, आम भाषा के अलग नाम से नीति को लेबल करने के लिए, name
एट्रिब्यूट का इस्तेमाल करें.
<DisplayName>Policy Display Name</DisplayName>
डिफ़ॉल्ट |
लागू नहीं अगर इस एलिमेंट को छोड़ दिया जाता है, तो नीति के |
---|---|
मौजूदगी | ज़रूरी नहीं |
Type | String |
<cacheKey> एलिमेंट
यह नीति कैश में स्टोर किए गए डेटा के किसी हिस्से के लिए यूनीक पॉइंटर कॉन्फ़िगर करती है.
कैश कुंजी का साइज़ 2 केबी तक सीमित हो सकता है.
<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>
के साथ किया जाता है. ज़्यादा जानकारी के लिए, कैश कुंजी के साथ काम करना लेख पढ़ें.
<cacheResource> एलिमेंट
इस नीति की मदद से, यह तय किया जाता है कि मैसेज किस कैश मेमोरी में सेव किए जाएं.
अगर यह नीति (और इससे जुड़ी lookupरॉ और अमान्य कैश मेमोरी की नीतियां) शेयर की गई कैश मेमोरी का इस्तेमाल कर रही है, तो इस एलिमेंट को पूरी तरह छोड़ दें.
<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>
के साथ किया जाता है. ज़्यादा जानकारी के लिए, कैश कुंजी के साथ काम करना लेख पढ़ें.
<ExpirySettings> एलिमेंट
यह तय करता है कि कैश एंट्री कब खत्म होनी चाहिए. मौजूद होने पर, <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> यह एलिमेंट, अब इस्तेमाल में नहीं आने वाले |
<ExpiryDate> |
यह नीति वह तारीख बताती है जब कैश एंट्री की समयसीमा खत्म हो जानी चाहिए. <ExpirySettings> <ExpiryDate ref="var-containing-date">expiry</ExpiryDate> </ExpirySettings> अगर बताई गई तारीख बीत चुकी है, तो नीति कैश मेमोरी में सेव की गई एंट्री पर लाइव रहने का ज़्यादा से ज़्यादा समय लागू करेगी. यह अवधि ज़्यादा से ज़्यादा 30 दिनों की हो सकती है. |
<TimeOfDay> |
दिन का वह समय बताता है जब कैश एंट्री खत्म हो जानी चाहिए.
स्ट्रिंग को <ExpirySettings> <TimeOfDay ref="var-containing-time">expiry</TimeOfDay> </ExpirySettings> |
आपको संभावित चाइल्ड एलिमेंट में से सिर्फ़ एक के बारे में बताना चाहिए. अगर आपने एक से ज़्यादा एलिमेंट तय किए हैं,
तो प्राथमिकता का क्रम यह है:TimeoutInSeconds
, ExpiryDate
,
TimeOfDay
.
<ExpirySettings>
के ऊपर दिए गए हर चाइल्ड एलिमेंट के साथ,
अगर चाइल्ड एलिमेंट पर वैकल्पिक ref
एट्रिब्यूट की जानकारी दी जाती है, तो नीति
नाम वाले कॉन्टेक्स्ट वैरिएबल से समयसीमा खत्म होने की वैल्यू फिर से हासिल करेगी. अगर वैरिएबल तय नहीं किया गया है,
तो नीति, चाइल्ड एलिमेंट की लिटरल टेक्स्ट वैल्यू का इस्तेमाल करती है.
<Scope> एलिमेंट
जब <CacheKey>
एलिमेंट में <Prefix>
एलिमेंट नहीं दिया जाता है, तब कैश कुंजी के लिए प्रीफ़िक्स बनाने के लिए इस्तेमाल की जाने वाली गिनती.
<Scope>scope_enumeration</Scope>
डिफ़ॉल्ट: |
"खास" |
मौजूदगी: |
ज़रूरी नहीं |
टाइप: |
String |
<Scope>
सेटिंग एक कैश कुंजी तय करती है, जिसे <Scope>
वैल्यू के हिसाब से
पहले जोड़ा जाता है. उदाहरण के लिए, स्कोप को Exclusive
पर सेट करने पर
कैश कुंजी इस तरह से दिखेगी:
orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ [ orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ ]
अगर <CacheKey>
में <Prefix>
एलिमेंट मौजूद है, तो यह
<Scope>
एलिमेंट वैल्यू की जगह ले लेगा. मान्य वैल्यू में, नीचे दी गई सूचियां
शामिल हैं.
<Scope>
एलिमेंट का इस्तेमाल <CacheKey>
और <Prefix>
के साथ किया जाता है. ज़्यादा जानकारी के लिए, कैश कुंजी के साथ काम करना लेख पढ़ें.
स्वीकार की जा सकने वाली वैल्यू
Global |
कैश कुंजी, एनवायरमेंट में डिप्लॉय की गई सभी एपीआई प्रॉक्सी के साथ शेयर की जाती है. कैश कुंजी orgName __ envName __ के रूप में पहले जोड़ी जाती है. अगर आपने
|
Application |
एपीआई प्रॉक्सी के नाम का इस्तेमाल प्रीफ़िक्स के तौर पर किया जाता है. कैश कुंजी कुंजी को orgName__envName__apiProxyName के रूप में पहले जोड़ा जाता है. |
Proxy |
प्रॉक्सीEndpoint कॉन्फ़िगरेशन का इस्तेमाल प्रीफ़िक्स के तौर पर किया जाता है. कैश कुंजी कुंजी को orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName के रूप में पहले जोड़ा जाता है . |
Target |
TargetEndpoint कॉन्फ़िगरेशन का इस्तेमाल प्रीफ़िक्स के तौर पर किया जाता है. कैश कुंजी कुंजी को orgName__envName__apiProxyName__deployedRevisionNumber__targetEndpointName फ़ॉर्म में पहले से जोड़ा जाता है . |
Exclusive |
डिफ़ॉल्ट. यह सबसे सटीक है. इसलिए, इससे किसी कैश मेमोरी में नेमस्पेस के टकराव का खतरा कम होता है. प्रीफ़िक्स इन दो फ़ॉर्म में से एक है:
कैश कुंजी, पहले से इस फ़ॉर्म में जोड़ी जाती है orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName उदाहरण के लिए, पूरी स्ट्रिंग इस तरह दिख सकती है: apifactory__test__weatherapi__16__default__apiAccessToken. |
<सोर्स> एलिमेंट
उस वैरिएबल के बारे में बताता है जिसकी वैल्यू को कैश मेमोरी में लिखा जाना चाहिए.
<Source>source_variable</Source>
डिफ़ॉल्ट: |
लागू नहीं |
मौजूदगी: |
ज़रूरी है |
टाइप: |
String |
इस्तेमाल की जानकारी
इस नीति का इस्तेमाल, डेटा को कैश मेमोरी में सेव करने के लिए करें. रनटाइम के दौरान,
<PopulateCache>
नीति, <Source>
एलिमेंट में दिए गए वैरिएबल से
<CacheResource>
एलिमेंट में तय की गई कैश मेमोरी में डेटा लिखती है. किसी कुंजी को तय करने के लिए, <CacheKey>
, <Scope>
, और <Prefix>
एलिमेंट का इस्तेमाल किया जा सकता है.
इसका इस्तेमाल वैल्यू को फिर से पाने के लिए, <LookupCache>
नीति की मदद से किया जा सकता है. कैश मेमोरी में सेव की गई वैल्यू की समयसीमा कब खत्म होनी चाहिए, यह कॉन्फ़िगर करने के लिए
<ExpirySettings>
एलिमेंट का इस्तेमाल करें.
सामान्य तौर पर इस्तेमाल की जाने वाली कैश मेमोरी में सेव की गई कैश मेमोरी नीति, lookupकैश नीति, और अमान्य कैश नीति, दोनों में से किसी एक कैश मेमोरी का इस्तेमाल करता है. इसके अलावा, कैश मेमोरी में सेव की गई ऐसी कैश मेमोरी का भी इस्तेमाल किया जाता है जो डिफ़ॉल्ट रूप से शामिल होती है. ज़्यादातर मामलों में, शेयर की गई कैश मेमोरी आपकी ज़रूरतों के मुताबिक होनी चाहिए. इस कैश मेमोरी का इस्तेमाल करने के लिए, बस <CacheResource>
एलिमेंट को हटा दें.
कैश मेमोरी की सीमाएं: कैश मेमोरी की अलग-अलग सीमाएं लागू होती हैं. जैसे, नाम और वैल्यू का साइज़, कैश मेमोरी की कुल संख्या, कैश में मौजूद आइटम की संख्या, और उनका ऐक्सेस खत्म होने की तारीख.
मौजूदा डेटा स्टोर के बारे में ज़्यादा जानने के लिए कैश मेमोरी देखें. कैश मेमोरी कॉन्फ़िगर करने के बारे में ज़्यादा जानने के लिए, एनवायरमेंट कैश बनाना और उसमें बदलाव करना देखें.
कैश मेमोरी एन्क्रिप्ट (सुरक्षित) करने की सुविधा के बारे में जानकारी
Edge for Public Cloud: कैश मेमोरी को सिर्फ़ पीसीआई और हिपा की सुविधा वाले संगठनों में एन्क्रिप्ट (सुरक्षित) किया जाता है. उन संगठनों के लिए एन्क्रिप्शन, संगठन प्रावधान के दौरान कॉन्फ़िगर किया जाता है.
गड़बड़ी कोड
यह सेक्शन गड़बड़ी के कोड और दिखाए गए गड़बड़ी के मैसेज के बारे में बताता है. साथ ही, इस नीति के ट्रिगर होने पर Edge की मदद से सेट की गई गड़बड़ी के वैरिएबल के बारे में बताता है. यह जानकारी जानना ज़रूरी है कि क्या गड़बड़ियों को ठीक करने के लिए, गड़बड़ी से जुड़े नियम बनाए जा रहे हैं. ज़्यादा जानने के लिए, नीति से जुड़ी गड़बड़ियों के बारे में आपके लिए ज़रूरी जानकारी और गड़बड़ियों को ठीक करने के तरीके देखें.
रनटाइम से जुड़ी गड़बड़ियां
नीति के लागू होने पर ये गड़बड़ियां हो सकती हैं.
गड़बड़ी का कोड | एचटीटीपी स्टेटस | कब होता है |
---|---|---|
policies.populatecache.EntryCannotBeCached |
500 | किसी एंट्री को कैश मेमोरी में सेव नहीं किया जा सकता. कैश मेमोरी में सेव किया जा रहा मैसेज ऑब्जेक्ट, किसी ऐसी क्लास का इंस्टेंस नहीं है जिसे क्रम से लगाया जा सकता है. |
डिप्लॉयमेंट से जुड़ी गड़बड़ियां
ये गड़बड़ियां तब हो सकती हैं, जब इस नीति वाले किसी प्रॉक्सी को डिप्लॉय किया जाता है.
गड़बड़ी का नाम | वजह | समाधान |
---|---|---|
InvalidCacheResourceReference |
यह गड़बड़ी तब होती है, जब Populatecache नीति में <CacheResource> एलिमेंट को किसी
ऐसे नाम पर सेट किया गया हो जो उस एनवायरमेंट में मौजूद नहीं है जहां एपीआई प्रॉक्सी को डिप्लॉय किया जा रहा है. |
build |
CacheNotFound |
<CacheResource> एलिमेंट में दी गई कैश मेमोरी
मौजूद नहीं है. |
build |
गड़बड़ी वाले वैरिएबल
ये वैरिएबल तब सेट किए जाते हैं, जब इस नीति से कोई गड़बड़ी ट्रिगर होती है. ज़्यादा जानकारी के लिए, नीति से जुड़ी गड़बड़ियों के बारे में आपके लिए ज़रूरी जानकारी देखें.
वैरिएबल | जगह | उदाहरण |
---|---|---|
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>