Önbellek politikası dağıtımı hatasını 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ılması şu hata mesajıyla başarısız olur:

Error Deploying Revision revision_number to environment
Invalid cache resource reference [cache_resource] in Step definition [populate_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 PopulateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test

Örnek Hata Ekran Görüntüsü

Neden

PopulateCache politikasındaki <CacheResource> öğesi, API proxy'sinin dağıtıldığı ortamda mevcut olmayan bir ada ayarlanırsa bu hata oluşur.

Teşhis

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

    Invalid cache resource reference tokencache in Step definition PopulateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. Başarısız PopulateCache politika XML dosyasını 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"?>
    <PopulateCache async="false" continueOnError="false" enabled="true" name="PopulateCache-Token">
        <DisplayName>PopulateCache-Token</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref="request.queryparam.client_id"/>
        </CacheKey>
        <CacheResource>tokencache</CacheResource>
        <Scope>Exclusive</Scope>
        <ExpirySettings>
            <TimeoutInSec>3600</TimeoutInSec>
        </ExpirySettings>
        <Source>token</Source>
    </PopulateCache>
    
  3. Önbelleğin (1. adımda belirlenir) belirli ortamda (1. adımda tanımlanır) tanımlanıp tanımlanmadığını doğrulayın.

    Edge kullanıcı arayüzünde YÖNETİCİ > Ortam > test bölümüne gidin ve Ortam Yapılandırması'nın Ö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 var olmadığına dikkat edin.

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

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

Çözünürlük

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

Önbelleğin nasıl oluşturulacağıyla ilgili bilgi için Ortam önbelleği oluşturma ve düzenleme başlıklı makaleye bakın.

CacheNotFound

Hata Mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge Management API aracılığıyla dağıtılması aşağıdaki gibi bir hata mesajıyla sonuçlanır 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 önbellek belirli bir Mesaj İşleyici bileşeninde oluşturulmamışsa ortaya çıkar. Mesaj İşleyici, Apigee Edge üzerinden API trafiği akışını işleyen dahili bir Edge bileşenidir.

Çözünürlük

Private Cloud kullanıcısıysanız lütfen aşağıdaki talimatları uygulayın:

  1. API proxy dağıtımlarını listeleyin ve hangi Mesaj İşleyicilerinde steps.cache.CacheNotFound hatasının olduğunu belirleyin.

    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. steps.cache.CacheNotFound hatasını gözlemlediğiniz İleti İşleyici'nin UUID'lerini not edin. UUID'ye karşılık gelen Mesaj İşleyici'nin ana makine adını/IP adresini tanımlayın.

  3. İlgili İleti İşleyiciye 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.