Fehlerbehebung bei der Bereitstellung von Lookup-Cache-Richtlinien

Sie sehen die Dokumentation zu Apigee Edge.
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 dieser 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.

Auflö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 dieser 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.

    Gehen Sie in der Edge-Benutzeroberfläche zu VERWALTUNG > Umgebung > Test und prüfen Sie unter Umgebungskonfiguration auf dem Tab Caches, 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
    
    

Auflö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 Management API führt zu einer Fehlermeldung wie dieser und der Bereitstellungsstatus des API-Proxys ist 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 die Private Cloud nutzen, gehen Sie so vor:

  1. Listen Sie die API-Proxy-Bereitstellungen auf und bestimmen, bei welchen Message Processorn 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 dem der Fehler steps.cache.CacheNotFound auftritt. Ermitteln Sie den Hostnamen/die IP-Adresse des Message Processor, der der UUID zugeordnet 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 die Public Cloud nutzen oder das Problem bei der Private Cloud weiterhin besteht, wenden Sie sich an den Apigee-Support.