Fehlerbehebung bei der Bereitstellung von Lookup-Cache-Richtlinien

<ph type="x-smartling-placeholder"></ph> Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur Apigee X-Dokumentation.
Weitere Informationen

InvalidTimeout

Fehlermeldung

Die Bereitstellung des API-Proxys über die Edge-Benutzeroberfläche oder die Edge-Verwaltungs-API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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

Beispiel für einen Fehler-Screenshot

Ursache

Wenn das <CacheLookupTimeoutInSeconds>-Element einer LookupCache-Richtlinie auf eine negative Zahl gesetzt ist, schlägt die Bereitstellung des API-Proxys fehl.

Wenn das Element <CacheLookupTimeoutInSeconds> beispielsweise -1 lautet, schlägt die Bereitstellung des API-Proxys fehl.

Diagnose

  1. Identifizieren Sie den ungültigen Wert, der für das <CacheLookupTimeoutInSeconds>-Element in der LookupCache-Richtlinie angegeben wurde. Diese Informationen finden Sie in der Fehlermeldung. Im folgenden Fehler ist beispielsweise -1 der ungültige Wert für das Element <CacheLookupTimeoutInSeconds>:

    CacheLookupTimeoutInSeconds -1 value should be greater than zero.
    
  2. Prüfen Sie alle LookupCache-Richtlinien im jeweiligen API-Proxy, in dem der Fehler aufgetreten ist. Es kann eine oder mehrere LookupCache-Richtlinien geben, in denen das <CacheLookupTimeoutInSeconds>-Element angegeben ist. Finde die LookUpCache-Richtlinie, bei der für das <CacheLookupTimeoutInSeconds>-Element ein ungültiger Wert angegeben wurde, der oben in Schritt 1 angegeben ist.

    Die folgende Richtlinienkonfiguration gibt beispielsweise den Wert von <CacheLookupTimeoutInSeconds> von -1 an, der mit der Fehlermeldung übereinstimmt:

    <?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. Wenn <CacheLookupTimeoutInSeconds> als negative Ganzzahl angegeben wird, ist dies die Ursache des Fehlers.

Lösung

Der Wert für das Element <CacheLookupTimeoutInSeconds> der LookupCache-Richtlinie muss immer als nicht negative ganze Zahl angegeben werden.

Um die oben beschriebene LookupCache-Richtlinie zu korrigieren, ändern Sie das <CacheLookupTimeoutInSeconds>-Element in 30.

<?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

Fehlermeldung

Die Bereitstellung des API-Proxys über die Edge-Benutzeroberfläche oder die Edge-Verwaltungs-API schlägt mit der folgenden Fehlermeldung fehl:

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]

Beispiel für Fehlermeldung

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

Beispiel für einen Fehler-Screenshot

Ursache

Dieser Fehler tritt auf, wenn für das <CacheResource>-Element ein Name festgelegt ist, der in der Umgebung, in der der API-Proxy bereitgestellt wird, nicht vorhanden ist.

Diagnose

  1. Identifizieren Sie den ungültigen Cache, der im Element <CacheResource> der LookupCache-Richtlinie verwendet wird, und ermitteln Sie, in welcher Umgebung der Fehler aufgetreten ist. Sie finden beides in der Fehlermeldung. Im folgenden Fehler lautet der Name des ungültigen Cache beispielsweise tokencache und der Name der Umgebung test.

    Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. Prüfen Sie alle LookupCache-Richtlinien im jeweiligen API-Proxy, in dem der Fehler aufgetreten ist. Identifizieren Sie die spezifische LookupCache-Richtlinie, bei der der ungültige Cache (identifiziert in Schritt #1) in Element <CacheResource> angegeben ist.

    Die folgende Richtlinie gibt beispielsweise den Wert von <CacheResource> als tokencache an, der mit der Fehlermeldung übereinstimmt:

    <?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. Prüfen Sie, ob der Cache (in Schritt #1 ermittelt) in der spezifischen Umgebung (in Schritt #1 identifiziert) definiert wurde.

    Navigieren Sie in der Edge-Benutzeroberfläche zu ADMIN > Umgebung > Test und prüfen Sie auf dem Tab Caches der Umgebungskonfiguration, ob der Cache vorhanden ist. Wenn der Cache nicht vorhanden ist, ist dies die Ursache des Fehlers.

    Beachten Sie beispielsweise im folgenden Screenshot, dass der Cache mit dem Namen tokencache nicht existiert.

    Da der Cache mit dem Namen tokencache nicht in der test-Umgebung definiert ist, wird dieser Fehler ausgegeben:

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

Lösung

Achten Sie darauf, dass der Cache im Element <CacheResource> in der Umgebung erstellt wurde, in der Sie den API-Proxy bereitstellen möchten.

Informationen zum Erstellen des Cache finden Sie unter Erstellen und Bearbeiten eines Umgebungscaches.

CacheNotFound

Fehlermeldung

Die Bereitstellung des API-Proxys über die Edge-Benutzeroberfläche oder die Edge-Verwaltungs-API führt zu einer Fehlermeldung wie dieser und der Bereitstellungsstatus des API-Proxys wird als teilweise bereitgestellt markiert:

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

Beispiel für Fehlermeldung

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

Ursache

Dieser Fehler tritt auf, wenn der in der Fehlermeldung erwähnte Cache nicht auf einer bestimmten Message Processor-Komponente erstellt wurde.

Auflösung

Wenn Sie Private Cloud-Nutzer sind, gehen Sie so vor:

  1. Listen Sie die API-Proxy-Bereitstellungen auf und ermitteln Sie, bei welchen Message Processor der Fehler steps.cache.CacheNotFound auftritt.

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

    Beispielausgabe

    {
      "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. Notieren Sie sich die UUID(s) des Message Processor, in der der Fehler steps.cache.CacheNotFound auftritt. Identifizieren Sie den Hostnamen bzw. die IP-Adresse des Message Processor, das mit der UUID verknüpft ist.

  3. Melden Sie sich beim jeweiligen Message Processor an und starten Sie ihn mit dem folgenden Befehl neu:

    apigee-service edge-message-processor restart

Wenn Sie Public Cloud nutzen oder das Problem bei Private Cloud weiterhin besteht, wenden Sie sich an den Apigee-Support.