Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं. जानकारी
![](https://docs.apigee.com/static/api-platform/images/icon_policy_traffic-management.jpg?hl=hi)
इस नीति से यह कॉन्फ़िगर किया जाता है कि कैश मेमोरी में सेव की गई वैल्यू को, कैश मेमोरी से कैसे पूरी तरह मिटाया जाना चाहिए.
इस नीति का इस्तेमाल सामान्य कामों के लिए, कम समय के लिए कैश मेमोरी में किया जाना है. इसका इस्तेमाल, कैश मेमोरी में डेटा भरने की नीति (एंट्री लिखने के लिए) और कैश मेमोरी से जुड़ी नीति (कैश मेमोरी में सेव की गई एंट्री को पढ़ने के लिए) के साथ किया जाता है.
बैकएंड संसाधनों के रिस्पॉन्स को कैश मेमोरी में सेव करने के लिए, रिस्पॉन्स कैश से जुड़ी नीति देखें.
एलिमेंट का रेफ़रंस
यहां उन एलिमेंट की सूची दी गई है जिन्हें इस नीति पर कॉन्फ़िगर किया जा सकता है.
<InvalidateCache async="false" continueOnError="false" enabled="true" name="policy-name"> <DisplayName>Policy Name</DisplayName> <CacheKey> <Prefix>prefix_string</Prefix> <KeyFragment ref="variable_reference"/> <KeyFragment>fragment_string</KeyFragment> </CacheKey> <!-- Omit this element if you're using the included shared cache. --> <CacheResource>cache_to_use</CacheResource> <Scope>scope_enumeration</Scope> <CacheContext> <APIProxyName>application_that_added_the_entry</APIProxyName> <ProxyName>proxy_for_which_data_was_cached</ProxyName> <TargetName>endpoint_for_which_data_was_cached</TargetName> </CacheContext> <PurgeChildEntries>true_to_purge_all_child_entries</PurgeChildEntries> </InvalidateCache>
< invalidatecache> एट्रिब्यूट
इस टेबल में उन एट्रिब्यूट के बारे में बताया गया है जो नीति के सभी पैरंट एलिमेंट के लिए एक जैसे होते हैं:
एट्रिब्यूट | ब्यौरा | डिफ़ॉल्ट | मौजूदगी |
---|---|---|---|
name |
नीति का अंदरूनी नाम. इसके अलावा, मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर में नीति को आम भाषा में अलग नाम से लेबल करने के लिए, |
लागू नहीं | ज़रूरी है |
continueOnError |
इस नीति को किसी नीति के काम न करने पर भी फ़्लो एक्ज़ीक्यूट करने की प्रोसेस को जारी रखने के लिए, |
false | ज़रूरी नहीं |
enabled |
नीति लागू करने के लिए, नीति को बंद करने के लिए, |
सही | ज़रूरी नहीं |
async |
यह एट्रिब्यूट अब काम नहीं करता. |
false | बहिष्कृत |
<DisplayName> एलिमेंट
मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर में, आम भाषा के अलग नाम से नीति को लेबल करने के लिए, name
एट्रिब्यूट का इस्तेमाल करें.
<DisplayName>Policy Display Name</DisplayName>
डिफ़ॉल्ट |
लागू नहीं अगर इस एलिमेंट को छोड़ दिया जाता है, तो नीति के |
---|---|
मौजूदगी | ज़रूरी नहीं |
Type | String |
<cacheContext>/<APIप्रॉक्सीName> एलिमेंट
इस नीति से, उस ऐप्लिकेशन का नाम पता चलता है जिसने कैश एंट्री जोड़ी है.
<APIProxyName>application_that_added_the_entry</APIProxyName>
एट्रिब्यूट
एट्रिब्यूट | ब्यौरा | डिफ़ॉल्ट | मौजूदगी | Type |
---|---|---|---|---|
संदर्भ | ऐप्लिकेशन के नाम वाला वैरिएबल. | लागू नहीं | ज़रूरी नहीं | स्ट्रिंग |
<cacheContext> एलिमेंट
यह नीति बताती है कि जब Prefix
एलिमेंट की वैल्यू नहीं दी गई हो,
तो कैश कुंजी कैसे बनाई जाए. इसके अलावा, यह भी बताया जाता है कि किसी दूसरे एपीआई प्रॉक्सी से जोड़ी गई कैश एंट्री को कैसे मिटाया जाए.
<CacheContext> <APIProxyName ref="variable_name">application_that_added_the_entry</APIProxyName> <TargetName ref="variable_name">endpoint_for_which_data_was_cached</TargetName> <ProxyName ref="variable_name">proxy_for_which_data_was_cached</ProxyName> </CacheContext>
इसका इस्तेमाल cacheKey बनाने के लिए किया जाता है. जब किसी अन्य एपीआई प्रॉक्सी से जोड़ी गई कैश एंट्री को मिटाने के लिए cacheKey प्रीफ़िक्स (यानी कि एक कस्टम प्रीफ़िक्स) का इस्तेमाल नहीं किया जाता है, तो APIप्रॉक्सीName, प्रॉक्सीName, और TargetName की वैल्यू का इस्तेमाल करना ज़रूरी है.
<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>
के साथ किया जाता है. ज़्यादा जानकारी के लिए, कैश कुंजी के साथ काम करना लेख पढ़ें.
<cacheResource> एलिमेंट
इस नीति की मदद से, यह तय किया जाता है कि मैसेज किस कैश मेमोरी में सेव किए जाएं.
अगर यह नीति (और इससे जुड़ी पॉप्युलेट कैश और lookupcache नीतियां) शेयर की गई कैश मेमोरी का इस्तेमाल कर रही हो, तो इस एलिमेंट को पूरी तरह से छोड़ दें.
<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>
के साथ किया जाता है. ज़्यादा जानकारी के लिए, कैश कुंजी के साथ काम करना लेख पढ़ें.
<cacheContext>/<प्रॉक्सीName> एलिमेंट
इस नीति से, उस प्रॉक्सी का नाम पता चलता है जिसके लिए डेटा को कैश मेमोरी में सेव किया गया था.
<ProxyName>proxy_for_which_data_was_cached</ProxyName>
डिफ़ॉल्ट: |
लागू नहीं |
मौजूदगी: |
ज़रूरी नहीं |
टाइप: |
String |
एट्रिब्यूट
एट्रिब्यूट | ब्यौरा | डिफ़ॉल्ट | मौजूदगी | Type |
---|---|---|---|---|
संदर्भ | वह वैरिएबल जिससे वैल्यू पाना है. अगर इस एलिमेंट में लिटरल वैल्यू है, तो इसका इस्तेमाल नहीं किया जाना चाहिए. | लागू नहीं | ज़रूरी नहीं | स्ट्रिंग |
<PurgeChildEntries> एलिमेंट
true
, ताकि कैश मेमोरी में सेव की गई उन एंट्री को पूरी तरह मिटाया जा सके जो इस नीति के लिए कॉन्फ़िगर किए गए
<KeyFragment>
एलिमेंट के ज़रिए सेट की गई वैल्यू को शेयर करते हैं. कैश कुंजी के अन्य हिस्सों, जैसे कि <Prefix>
एलिमेंट में मौजूद वैल्यू को शामिल नहीं किया जाता है.
ध्यान दें कि <KeyFragment>
एलिमेंट के बारे में बताना ज़रूरी है. अगर ऐसा नहीं है,
तो <PurgeChildEntries>
के लिए 'सही' सेट करने पर, कैश मेमोरी में सेव सभी एंट्री पूरी हो सकती हैं.
एक ही कुंजी फ़्रैगमेंट वैल्यू की सभी कैश एंट्री को अमान्य करना, एक साथ कई मिलती-जुलती एंट्री को पूरी तरह मिटाने का अच्छा तरीका हो सकता है.
<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>
डिफ़ॉल्ट: |
false |
मौजूदगी: |
ज़रूरी नहीं |
टाइप: |
बूलियन |
<Scope> एलिमेंट
जब <CacheKey>
एलिमेंट में <Prefix>
एलिमेंट नहीं दिया जाता है, तब कैश कुंजी के लिए प्रीफ़िक्स बनाने के लिए इस्तेमाल की जाने वाली गिनती.
<Scope>scope_enumeration</Scope>
डिफ़ॉल्ट: |
"खास" |
मौजूदगी: |
ज़रूरी नहीं |
टाइप: |
String |
<Scope>
सेटिंग एक कैश कुंजी तय करती है, जिसे <Scope>
वैल्यू के हिसाब से
पहले जोड़ा जाता है. उदाहरण के लिए, स्कोप को Exclusive
पर सेट करने पर
कैश कुंजी इस तरह से दिखेगी:
orgName__envName__ऐप्लिकेशनName__deployedRevisionNumber__प्रॉक्सी|TargetName__ [ serializedCacheKey ].
अगर <CacheKey>
में <Prefix>
एलिमेंट मौजूद है, तो यह
<Scope>
एलिमेंट वैल्यू की जगह ले लेगा. मान्य वैल्यू में, नीचे दी गई सूचियां
शामिल हैं.
<Scope>
एलिमेंट का इस्तेमाल <CacheKey>
और <Prefix>
के साथ किया जाता है. ज़्यादा जानकारी के लिए, कैश कुंजी के साथ काम करना लेख पढ़ें.
स्वीकार की जा सकने वाली वैल्यू
स्कोप वैल्यू | ब्यौरा |
---|---|
Global |
कैश कुंजी, एनवायरमेंट में डिप्लॉय की गई सभी एपीआई प्रॉक्सी के साथ शेयर की जाती है. कैश कुंजी orgName __ envName __ के रूप में पहले जोड़ी जाती है. अगर आपने
|
Application |
एपीआई प्रॉक्सी के नाम का इस्तेमाल प्रीफ़िक्स के तौर पर किया जाता है. कैश कुंजी, orgName__envName__ऐप्लिकेशननाम के तौर पर पहले जोड़ी जाती है. |
Proxy |
प्रॉक्सीEndpoint कॉन्फ़िगरेशन का इस्तेमाल प्रीफ़िक्स के तौर पर किया जाता है. कैश कुंजी कुंजी को orgName__envName__ऐप्लिकेशनName__deployedRevisionNumber__exactEndpointName के तौर पर पहले जोड़ा जाता है. |
Target |
TargetEndpoint कॉन्फ़िगरेशन का इस्तेमाल प्रीफ़िक्स के तौर पर किया जाता है. कैश कुंजी कुंजी orgName__envName__ऐप्लिकेशनName__deployedRevisionNumber__targetEndpointName के रूप में जोड़ी जाती है. |
Exclusive |
डिफ़ॉल्ट. यह सबसे सटीक है. इसलिए, इससे किसी कैश मेमोरी में नेमस्पेस के टकराव का खतरा कम होता है. प्रीफ़िक्स इन दो फ़ॉर्म में से एक है:
कैश कुंजी से पहले जोड़ा गया orgName__envName__ऐप्लिकेशनName__deployedRevisionNumber__ डेमोITargetName उदाहरण के लिए, पूरी स्ट्रिंग इस तरह दिख सकती है: apifactory__test__weatherapi__16__default__apiAccessToken. |
<cacheContext>/<TargetName> एलिमेंट
इससे उस टारगेट एंडपॉइंट का नाम पता चलता है जिसके लिए डेटा को कैश मेमोरी में सेव किया गया था.
<TargetName>endpoint_for_which_data_was_cached</TargetName>
डिफ़ॉल्ट: |
लागू नहीं |
मौजूदगी: |
ज़रूरी नहीं |
टाइप: |
String |
एट्रिब्यूट
एट्रिब्यूट | ब्यौरा | डिफ़ॉल्ट | मौजूदगी | Type |
---|---|---|---|---|
संदर्भ | वह वैरिएबल जिससे वैल्यू पाना है. अगर इस एलिमेंट में लिटरल वैल्यू है, तो इसका इस्तेमाल नहीं किया जाना चाहिए. | लागू नहीं | ज़रूरी नहीं | स्ट्रिंग |
इस्तेमाल की जानकारी
सामान्य तरीके से कैश मेमोरी में सेव करने के लिए बनाई गई ऐसी कैश मेमोरी का इस्तेमाल किया जाता है जिसे कैश मेमोरी से जुड़ी नीति, lookup cache नीति, और अमान्य कैश मेमोरी नीति की मदद से कैश मेमोरी में सेव किया जाता है. इसके अलावा, ऐसी कैश मेमोरी का इस्तेमाल किया जाता है जिसे आपने कॉन्फ़िगर किया है या शेयर की गई ऐसी कैश मेमोरी जो डिफ़ॉल्ट रूप से शामिल होती है. ज़्यादातर मामलों में, शेयर की गई कैश मेमोरी आपकी ज़रूरतों के मुताबिक होनी चाहिए. इस कैश मेमोरी का इस्तेमाल करने के लिए,
<CacheResource>
एलिमेंट को हटा दें.
कैश मेमोरी कॉन्फ़िगर करने के बारे में ज़्यादा जानने के लिए, एनवायरमेंट कैश बनाना और उसमें बदलाव करना लेख पढ़ें. मौजूदा डेटा स्टोर के बारे में ज़्यादा जानने के लिए कैश मेमोरी देखें.
गड़बड़ी कोड
इस सेक्शन में गड़बड़ी के मैसेज और फ़्लो वैरिएबल के बारे में बताया गया है. ये वैरिएबल तब सेट किए जाते हैं, जब इस नीति के तहत कोई गड़बड़ी ट्रिगर होती है. यह जानकारी जानना ज़रूरी है कि क्या प्रॉक्सी के लिए गड़बड़ी के नियम बनाए जा रहे हैं. ज़्यादा जानने के लिए, नीति से जुड़ी गड़बड़ियों के बारे में आपके लिए ज़रूरी जानकारी और गड़बड़ियों को ठीक करने के तरीके देखें.
गड़बड़ी कोड प्रीफ़िक्स
लागू नहीं
रनटाइम से जुड़ी गड़बड़ियां
इस नीति के तहत रनटाइम में कोई गड़बड़ी नहीं होती है.
डिप्लॉयमेंट से जुड़ी गड़बड़ियां
ये गड़बड़ियां तब हो सकती हैं, जब इस नीति वाले किसी प्रॉक्सी को डिप्लॉय किया जाता है.
गड़बड़ी का नाम | वजह | समाधान |
---|---|---|
InvalidCacheResourceReference |
यह गड़बड़ी तब होती है, जब अमान्यैट कैश नीति में <CacheResource> एलिमेंट को किसी ऐसे नाम पर सेट किया गया हो जो उस एनवायरमेंट में मौजूद नहीं है जहां एपीआई प्रॉक्सी को डिप्लॉय किया जा रहा है. |
build |
CacheNotFound |
यह गड़बड़ी तब होती है, जब गड़बड़ी के मैसेज में बताए गए कैश को किसी खास Message प्रोसेसर कॉम्पोनेंट पर न बनाया गया हो. | build |
गड़बड़ी वाले वैरिएबल
लागू नहीं
गड़बड़ी के जवाब का उदाहरण
लागू नहीं