Önbellek politikası dağıtım hatasını geçersiz kılma hatası giderme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

InvalidCacheResourceReference

Hata Mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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]

Örnek hata mesajı

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

Örnek hata ekran görüntüsü

Neden

Bu hata, InvalidateCache politikasındaki <CacheResource> öğesi, API proxy'sinin dağıtıldığı ortamda bulunmayan bir ada ayarlanırsa oluşur.

Teşhis

  1. InvalidateCache politikası adını, InvalidateCache politikasının <CacheResource> öğesinde kullanılan geçersiz önbelleği ve hatanın oluştuğu ortamı belirleyin. Bu öğelerin tümünü hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada InvalidateCache politika adı InvalidateCache-Token, geçersiz kılınan önbelleğin adı tokencache ve ortam adı test'dir.

    Invalid cache resource reference tokencache in Step definition InvalidateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. Başarısız olan InvalidateCache politikası XML'sini inceleyin ve <CacheResource> öğesi için belirtilen önbellek adının hata mesajıyla eşleşip eşleşmediğini doğrulayın.

    Bu örnekte, <CacheResource> öğesinde belirtilen önbellek adı tokencache'dir:

    <?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. Önbelleğin (1. adımda belirlenir) belirli bir ortamda (1. adımda tanımlanır) tanımlanıp tanımlanmadığını doğrulayın.

    Edge kullanıcı arayüzünde ADMIN > Environment > test'e gidin ve Environment Configuration'ın Caches (Önbellekler) sekmesinde önbelleğin olup olmadığını kontrol edin. Önbellek yoksa hatanın nedeni budur.

    Örneğin, aşağıdaki ekran görüntüsünde tokencache adlı önbelleğin mevcut olmadığını görebilirsiniz.

    tokencache adlı önbellek, test ortamında tanımlanmadığı için şu hatayı alırsınız:

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

Çözünürlük

InvalidateCache politikasının <CacheResource> öğesinde belirtilen önbelleğin, API proxy'sini dağıtmak istediğiniz ortamda oluşturulduğundan emin olun.

Önbelleği oluşturma hakkında bilgi için Ortam önbelleği oluşturma ve düzenleme başlıklı makaleyi inceleyin.

CacheNotFound

Hata Mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge yönetim API'si aracılığıyla dağıtılması, aşağıdaki gibi bir hata mesajına neden olur ve API proxy'sinin dağıtım durumu kısmen dağıtılmış olarak işaretlenir:

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

Örnek hata mesajı

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

Neden

Bu hata, hata mesajında belirtilen belirli önbellek, belirli bir Mesaj İşleyici bileşeninde oluşturulmamışsa oluşur. Mesaj İşleyici, API trafiğinin Apigee Edge üzerinden akışını işleyen dahili bir Edge bileşenidir.

Çözünürlük

Özel bulut kullanıcısıysanız lütfen aşağıdaki talimatları uygulayın:

  1. API proxy dağıtımlarını listeleyin ve hangi mesaj işlemcilerde hata olduğunu belirleyin steps.cache.CacheNotFound.

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

    Örnek Çıkış

      {
        "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. Hatayı gözlemlediğiniz mesaj işlemcisinin UUID'lerini not edin steps.cache.CacheNotFound. UUID'ye karşılık gelen ileti işlemcisinin ana makine adını/IP adresini belirleyin.

  3. İlgili Mesaj İşleyici'ye giriş yapın ve aşağıdaki komutu kullanarak yeniden başlatın:

    apigee-service edge-message-processor restart

Public Cloud kullanıcısıysanız veya sorun Private Cloud'da devam ediyorsa yardım için Apigee Destek Ekibi ile iletişime geçin.