कैश नीति के डिप्लॉयमेंट से जुड़ी गड़बड़ी की समस्या हल करना अमान्य करें

Apigee Edge का दस्तावेज़ देखा जा रहा है.
Apigee X के दस्तावेज़ पर जाएं.
info

पर क्लिक करें.

InvalidCacheResourceReference

गड़बड़ी का मैसेज

Edge यूज़र इंटरफ़ेस (यूआई) या Edge Management API के ज़रिए एपीआई प्रॉक्सी को डिप्लॉय करने पर, यह गड़बड़ी का मैसेज दिखता है:

Error Deploying Revision revision_number to environment
Invalid cache resource reference [cache_resource] in Step definition [invalidate_cache_policy_name]. Context Revision:[revision_number];APIProxy:[apiproxy_name];Organization:[organization];Environment:[environment]

गड़बड़ी के मैसेज का उदाहरण

Error Deploying Revision 2 to test
Invalid cache resource reference tokencache in Step definition InvalidateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test

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

वजह

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

संक्रमण की जांच

  1. InvalidateCache नीति का नाम, InvalidateCache नीति के <CacheResource> एलिमेंट में इस्तेमाल की गई अमान्य कैश मेमोरी, और वह एनवायरमेंट जिसमें गड़बड़ी हुई है. आपको ये सभी आइटम, गड़बड़ी के मैसेज में मिल सकते हैं. उदाहरण के लिए, यहां दी गई गड़बड़ी में, InvalidateCache नीति का नाम InvalidateCache-Token है, अमान्य कैश मेमोरी का नाम tokencache है, और एनवायरमेंट का नाम test है.

    Invalid cache resource reference tokencache in Step definition InvalidateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. अमान्य की गई InvalidateCache नीति के एक्सएमएल की जांच करें. साथ ही, पुष्टि करें कि <CacheResource> एलिमेंट के लिए तय किया गया कैश मेमोरी का नाम, गड़बड़ी के मैसेज से मेल खाता हो.

    इस उदाहरण में, <CacheResource> एलिमेंट में दिया गया कैश मेमोरी का नाम tokencache है:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <InvalidateCache async="false" continueOnError="false" enabled="true" name="InvalidateCache-Token">
        <DisplayName>InvalidateCache-Token</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref=""/>
        </CacheKey>
        <CacheResource>tokencache</CacheResource>
        <Scope>Exclusive</Scope>
        <CacheContext>
            <APIProxyName/>
            <ProxyName>default</ProxyName>
            <TargetName>default</TargetName>
        </CacheContext>
        <PurgeChildEntries>false</PurgeChildEntries>
    </InvalidateCache>
    
  3. पुष्टि करें कि कैश मेमोरी (पहले चरण में तय की गई) को उस खास एनवायरमेंट (पहले चरण में पहचान की गई) में तय किया गया है.

    Edge यूज़र इंटरफ़ेस (यूआई) में, ADMIN > Environment > test पर जाएं. इसके बाद, देखें कि Environment Configuration के Caches टैब में कैश मेमोरी मौजूद है या नहीं. अगर कैश मेमोरी मौजूद नहीं है, तो गड़बड़ी की वजह यही है.

    उदाहरण के लिए, नीचे दिए गए स्क्रीनशॉट में देखें कि tokencache नाम की कैश मौजूद नहीं है.

    tokencache एनवायरमेंट में test नाम की कैश मेमोरी तय नहीं की गई है. इसलिए, आपको यह गड़बड़ी दिखेगी:

    Invalid cache resource reference tokencache in Step definition InvalidateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    

रिज़ॉल्यूशन

पक्का करें कि InvalidateCache नीति के <CacheResource> एलिमेंट में बताई गई कैश मेमोरी, उस एनवायरमेंट में बनाई गई हो जहां आपको एपीआई प्रॉक्सी को डिप्लॉय करना है.

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

CacheNotFound

गड़बड़ी का मैसेज

Edge के यूज़र इंटरफ़ेस (यूआई) या Edge Management API के ज़रिए एपीआई प्रॉक्सी को डिप्लॉय करने पर, इस तरह का गड़बड़ी का मैसेज दिखता है. साथ ही, एपीआई प्रॉक्सी के डिप्लॉयमेंट की स्थिति को 'आंशिक रूप से डिप्लॉय किया गया' के तौर पर मार्क किया जाता है:

Error: Cache : cache_resource, not found in organization : organization__environment.

गड़बड़ी के मैसेज का उदाहरण

Error Cache : configCache, not found in organization : kkalckstein-eval__test

वजह

यह गड़बड़ी तब होती है, जब गड़बड़ी के मैसेज में बताई गई कैश मेमोरी को किसी Message Processor कॉम्पोनेंट पर नहीं बनाया गया हो. मैसेज प्रोसेसर, Edge का एक इंटरनल कॉम्पोनेंट होता है. यह Apigee Edge के ज़रिए एपीआई ट्रैफ़िक के फ़्लो को प्रोसेस करता है.

रिज़ॉल्यूशन

अगर आप Private Cloud के उपयोगकर्ता हैं, तो कृपया यहां दिए गए निर्देशों का पालन करें:

  1. एपीआई प्रॉक्सी डिप्लॉयमेंट की सूची बनाएं और पता लगाएं कि किन मैसेज प्रोसेसर में गड़बड़ी steps.cache.CacheNotFound है.

    curl -u $USERID:$USERPASSWORD http://:8080/v1/organizations//environments//apis//revisions//deployments

    आउटपुट का सैंपल

      {
        "aPIProxy" : "TestCache",
        "environment" : [ {
          "configuration" : {
            "basePath" : "/",
            "configVersion" : "SHA-512:45d3f39783414d3859bf2dec4135d8f5f9960ee6b2d361db2799c82693a8e3f8b95dbbb37c547eb3c0a3819d8ca51727f390502bcaefdf1f113263521a9023b6",
            "steps" : [ ]
          },
          "name" : "prod",
          "server" : [ {
            "pod" : {
              "name" : "pod1",
              "region" : "us-central1"
            },
            "status" : "deployed",
            "type" : [ "message-processor" ],
            "uUID" : "f2e5e34a-5630-43a9-8fef-48a5b9da76d1"
          }, {
            "pod" : {
              "name" : "pod1",
              "region" : "us-central1"
            },
            "status" : "deployed",
            "type" : [ "message-processor" ],
            "uUID" : "879a6538-a5e0-4503-b142-9cb2b4e0623d"
          }, {
          "error" : "Cache : configCache, not found in organization : kkalckstein-eval__test",
          "errorCode" : "steps.cache.CacheNotFound",
          "status" : "error",
          "type" : [ "message-processor" ],
           "uUID" : "a8f9ce0b-c32d-48a9-b26c-9c75d8bf467d"
      },
      ...
          "state" : "deployed"
        } ],
        "name" : "2",
        "organization" : "kkalckstein-eval"
        ...
    
  2. उस मैसेज प्रोसेसर के यूयूआईडी नोट करें जिसमें आपको गड़बड़ी steps.cache.CacheNotFound दिख रही है. यूयूआईडी से जुड़े मैसेज प्रोसेसर के होस्टनेम/आईपी पते की पहचान करें.

  3. किसी मैसेज प्रोसेसर में लॉग इन करें और इस कमांड का इस्तेमाल करके उसे फिर से चालू करें:

    apigee-service edge-message-processor restart

अगर आप Public Cloud के उपयोगकर्ता हैं या Private Cloud में समस्या बनी रहती है, तो मदद पाने के लिए Apigee की सहायता टीम से संपर्क करें.