आपको 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><PopulateCache> एट्रिब्यूट
यहां दी गई टेबल में, ऐसे एट्रिब्यूट के बारे में बताया गया है जो नीति के सभी पैरंट एलिमेंट में एक जैसे होते हैं:
| एट्रिब्यूट | ब्यौरा | डिफ़ॉल्ट | मौजूदगी |
|---|---|---|---|
name |
नीति का अंदरूनी नाम. इसके अलावा, नीति को लेबल करने के लिए, |
लागू नहीं | ज़रूरी है |
continueOnError |
किसी नीति के काम न करने पर, गड़बड़ी दिखाने के लिए नीति के लागू होने के बाद भी फ़्लो को एक्ज़ीक्यूट करने के लिए, इसे |
गलत | वैकल्पिक |
enabled |
नीति को लागू करने के लिए, नीति को बंद करने के लिए, |
सही | वैकल्पिक |
async |
यह एट्रिब्यूट अब काम नहीं करता. |
गलत | बहिष्कृत |
<DisplayName> एलिमेंट
इस कॉलम में नीति को लेबल करने के लिए, name एट्रिब्यूट के साथ-साथ इस्तेमाल करें
मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर, जिसका नाम अलग और सामान्य भाषा में है.
<DisplayName>Policy Display Name</DisplayName>
| डिफ़ॉल्ट |
लागू नहीं अगर आप इस एलिमेंट को छोड़ देते हैं, तो नीति की |
|---|---|
| मौजूदगी | वैकल्पिक |
| टाइप | स्ट्रिंग |
<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कैश और अमान्यateकैश नीतियां) शामिल की गई 'शेयर की गई कैश मेमोरी' सुविधा का इस्तेमाल कर रही है.
<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>. ज़्यादा जानकारी के लिए, कैश मेमोरी में सेव की जाने वाली कुंजियों के साथ काम करना लेख पढ़ें.
विशेषताएं
| एट्रिब्यूट | टाइप | डिफ़ॉल्ट | ज़रूरी है | ब्यौरा |
|---|---|---|---|---|
| संदर्भ | स्ट्रिंग | नहीं |
वह वैरिएबल जिससे वैल्यू पाना है. अगर इस एलिमेंट में ये चीज़ें शामिल हैं, तो इसका इस्तेमाल नहीं करना चाहिए लिटरल वैल्यू होती है. |
<CacheKey>/<Prefix> एलिमेंट
यह कैश मेमोरी की कुंजी के प्रीफ़िक्स के तौर पर इस्तेमाल की जाने वाली वैल्यू के बारे में बताता है.
<Prefix>prefix_string</Prefix>
|
डिफ़ॉल्ट: |
लागू नहीं |
|
मौजूदगी: |
वैकल्पिक |
|
टाइप: |
स्ट्रिंग |
जब आपको अपना मान तय करना हो, तो <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> एलिमेंट
<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 __ के फ़ॉर्म में पहले से जोड़ा जाता है. यदि आप कोई |
Application |
एपीआई प्रॉक्सी के नाम का इस्तेमाल प्रीफ़िक्स के तौर पर किया जाता है. कैश कुंजी को orgName__envName__apiProxyName के फ़ॉर्म में पहले से जोड़ा जाता है. |
Proxy |
प्रॉक्सीएंडपॉइंट कॉन्फ़िगरेशन का इस्तेमाल प्रीफ़िक्स के तौर पर किया जाता है. कैश कुंजी को फ़ॉर्म में पहले से जोड़ा गया है 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>source_variable</Source>
|
डिफ़ॉल्ट: |
लागू नहीं |
|
मौजूदगी: |
ज़रूरी है |
|
टाइप: |
स्ट्रिंग |
इस्तेमाल की जानकारी
अलग-अलग कामों के लिए कैश मेमोरी में सेव करने के लिए, इस नीति का इस्तेमाल करें. रनटाइम के दौरान,
<PopulateCache> नीति, उस वैरिएबल से डेटा लिखती है जिसे आपने
<Source> एलिमेंट को कैश मेमोरी में सेव करने का तरीका
<CacheResource> एलिमेंट. आपके पास <CacheKey>,
<Scope> और <Prefix> एलिमेंट की मदद से, पासकोड तय किया जा सकता है
वैल्यू को पाने के लिए, <LookupCache> नीति से इसका इस्तेमाल किया जा सकता है. इसका इस्तेमाल करें
कैश मेमोरी में सेव की गई वैल्यू की समयसीमा खत्म होने के बाद, <ExpirySettings> एलिमेंट को कॉन्फ़िगर करें.
Durationकैश मेमोरी में सेव करने की नीति, lookupकैश नीति, और पुष्टि करने के लिए कैश मेमोरी से जुड़ी नीति का इस्तेमाल करके, आम काम के लिए कैश मेमोरी में सेव करने की सुविधा का इस्तेमाल करती है
या तो कॉन्फ़िगर किया गया कैश मेमोरी या शेयर की गई कैश मेमोरी जो डिफ़ॉल्ट रूप से शामिल होती है. ज़्यादातर मामलों में,
शेयर की गई कैश मेमोरी आपकी ज़रूरतों के हिसाब से होनी चाहिए. इस कैश का इस्तेमाल करने के लिए, बस इसे छोड़ दें
<CacheResource> एलिमेंट.
कैश मेमोरी की सीमाएं: कैश मेमोरी की अलग-अलग सीमाएं लागू की जा सकती हैं, जैसे कि नाम और वैल्यू का साइज़, कैश मेमोरी की कुल संख्या, कैश मेमोरी में आइटम की संख्या, और उनकी समयसीमा खत्म होने की वजह से.
मौजूदा डेटा स्टोर के बारे में ज़्यादा जानने के लिए, कैश मेमोरी में सेव डेटा सेक्शन देखें. कॉन्फ़िगर करने के बारे में ज़्यादा जानने के लिए कैश मेमोरी में सेव करने के लिए, किसी ब्राउज़र पर एनवायरमेंट कैश मेमोरी.
कैश मेमोरी में सेव डेटा को एन्क्रिप्ट (सुरक्षित) करने के बारे में जानकारी
Edge for Public Cloud: कैश मेमोरी को सिर्फ़ एन्क्रिप्ट (सुरक्षित) किया जाता है PCI- और HIPAA की सुविधा चालू हो संगठनों ने. उन संगठनों के लिए एन्क्रिप्ट (सुरक्षित) करने का तरीका, संगठन के दौरान कॉन्फ़िगर किया गया है प्रॉविज़निंग.
गड़बड़ी कोड
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
| Fault code | HTTP Status | Occurs when |
|---|---|---|
policies.populatecache.EntryCannotBeCached |
500 | An entry cannot be cached. The message object being cached is not an instance of a class that is Serializable. |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
InvalidCacheResourceReference |
This error occurs if the <CacheResource> element in the PopulateCache policy is set to
a name that does not exist in the environment where the API proxy is being deployed. |
build |
CacheNotFound |
The cache specified in the <CacheResource> element does not
exist. |
build |
Fault variables
These variables are set when this policy triggers an error. For more information, see What you need to know about policy errors.
| Variables | Where | Example |
|---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. | fault.name = "EntryCannotBeCached" |
populatecache.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | populatecache.POP-CACHE-1.failed = true |
Example error response
{ "fault": { "faultstring": "[entry] can not be cached. Only serializable entries are cached.", "detail": { "errorcode": "steps.populatecache.EntryCannotBeCached" } } }
Example fault rule
<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>