Lookup Cache politikası dağıtım hatasıyla ilgili sorunları giderme

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

InvalidTimeout

Hata Mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

Error Saving Revision revision_number
CacheLookupTimeoutInSeconds value value should be greater than zero.

Örnek Hata Mesajı

Error Saving Revision 2
CacheLookupTimeoutInSeconds -1 value should be greater than zero.

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

Neden

LookupCache politikasının <CacheLookupTimeoutInSeconds> öğesi negatif bir sayıya ayarlanırsa API proxy'sinin dağıtımı başarısız olur.

Örneğin, <CacheLookupTimeoutInSeconds> öğesi -1 ise API proxy'sinin dağıtımı başarısız olur.

Teşhis

  1. LookupCache politikasında <CacheLookupTimeoutInSeconds> öğesi için belirtilen geçersiz değeri tanımlayın. Bu bilgileri hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada <CacheLookupTimeoutInSeconds> öğesi için kullanılan geçersiz değer -1 değeridir:

    CacheLookupTimeoutInSeconds -1 value should be greater than zero.
    
  2. Hatanın oluştuğu ilgili API Proxy'sinde tüm LookupCache politikalarını inceleyin. <CacheLookupTimeoutInSeconds> öğesinin belirtildiği bir veya daha fazla LookupCache politikası olabilir. <CacheLookupTimeoutInSeconds> öğesi için geçersiz değerin (yukarıdaki 1. adımda tanımlanır) belirtildiği LookUpCache politikasını tanımlayın.

    Örneğin, aşağıdaki politika yapılandırması, hata mesajıyla eşleşen -1 değeri için <CacheLookupTimeoutInSeconds> değerini belirtiyor:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <LookupCache async="false" continueOnError="false" enabled="true" name="LookupCache-Token">
        <DisplayName>LookupCache-Token</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref="request.queryparam.client_id"/>
        </CacheKey>
        <CacheLookupTimeoutInSeconds>-1</CacheLookupTimeoutInSeconds>
        <Scope>Exclusive</Scope>
        <ExpirySettings>
            <TimeoutInSec>3600</TimeoutInSec>
        </ExpirySettings>
        <AssignTo>usertoken</AssignTo>
    </LookupCache>
    
  3. <CacheLookupTimeoutInSeconds> negatif bir tam sayı olarak belirtilirse hatanın nedeni budur.

Çözünürlük

LookupCache politikasının <CacheLookupTimeoutInSeconds> öğesine ait değerin her zaman negatif olmayan bir tam sayı olarak belirtildiğinden emin olun.

Yukarıda gösterilen örnek LookupCache politikasını düzeltmek için <CacheLookupTimeoutInSeconds> öğesini 30 olarak değiştirebilirsiniz.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<LookupCache async="false" continueOnError="false" enabled="true" name="LookupCache-Token">
    <DisplayName>LookupCache-Token</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref="request.queryparam.client_id"/>
    </CacheKey>
    <CacheResource>tokencache</CacheResource>
    <CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>
    <Scope>Exclusive</Scope>
    <ExpirySettings>
        <TimeoutInSec>3600</TimeoutInSec>
    </ExpirySettings>
    <AssignTo>usertoken</AssignTo>
</LookupCache>

InvalidCacheResourceReference

Hata Mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

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:ResponseCache;Organization:[organization];Environment:[environment]

Örnek Hata Mesajı

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

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

Neden

Bu hata, <CacheResource> öğesi, API proxy'sinin dağıtıldığı ortamda bulunmayan bir ada ayarlanırsa ortaya çıkar.

Teşhis

  1. LookupCache politikasının <CacheResource> öğesinde kullanılan geçersiz önbelleği ve hatanın oluştuğu ortamı tanımlayın. Bu öğelerin ikisini de hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada geçersiz önbelleğin adı tokencache, ortam adı ise test şeklindedir.

    Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. Hatanın oluştuğu ilgili API Proxy'sinde tüm LookupCache politikalarını inceleyin. <CacheResource> öğesinde geçersiz önbelleğin (1. adımda tanımlanır) belirtildiği özel LookupCache politikasını tanımlayın.

    Örneğin, aşağıdaki politika <CacheResource> değerini tokencache olarak belirtir ve bu değer hata mesajıyla eşleşir:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <LookupCache async="false" continueOnError="false" enabled="true" name="LookupCache-Token">
        <DisplayName>LookupCache-Token</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref="request.queryparam.client_id"/>
        </CacheKey>
        <CacheResource>tokencache</CacheResource>
        <CacheLookupTimeoutInSeconds/>
        <Scope>Exclusive</Scope>
        <ExpirySettings>
            <TimeoutInSec>3600</TimeoutInSec>
        </ExpirySettings>
        <AssignTo>usertoken</AssignTo>
    </LookupCache>
    
  3. Önbelleğin (1. adımda belirlenir) ilgili 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 edin ve önbelleğin, Ortam Yapılandırması'nın Önbellekler sekmesinde olup olmadığını kontrol edin. Önbellek mevcut değilse hatanın nedeni budur.

    Örneğin, aşağıdaki ekran görüntüsünde tokencache adlı önbelleğin bulunmadığına dikkat edin.

    tokencache adlı önbellek test ortamında tanımlanmadığından hata mesajını alırsınız:

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

Çözünürlük

<CacheResource> öğesinde belirtilen önbellek adının, 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ı sonucunda şu şekilde bir hata mesajı görüntülenir ve API Proxy'sinin dağıtım durumu kısmen dağıtıldı 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 bahsedilen önbellek, belirli bir İleti İşleyici bileşeninde oluşturulmadıysa ortaya çıkar.

Çö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 işleyicilerin steps.cache.CacheNotFound hatasına sahip 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ördüğünüz Mesaj İşleyici'nin UUID'lerini not edin. UUID ile ilişkili Mesaj İşleyici'nin ana makine adını/IP adresini tanımlayın.

  3. Belirtilen İleti İşleyen'e giriş yapın ve aşağıdaki komutu kullanarak yeniden başlatın:

    apigee-service edge-message-processor restart

Herkese Açık Bulut kullanıcısıysanız veya sorun Private Cloud ile ilgiliyse yardım almak için Apigee Destek Ekibi ile iletişime geçin.