Fehlerbehebung beim Bereitstellen von Cache-Richtlinien

Sie lesen gerade die Apigee Edge -Dokumentation.
Zur Apigee X -Dokumentation.
info

InvalidCacheResourceReference

Fehlermeldung

Die Bereitstellung des API-Proxys über die Edge-Benutzeroberfläche oder die Edge Management 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:[apiproxy_name];Organization:[organization];Environment:[environment]

Beispiel für Fehlermeldung

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

Beispiel für einen Fehler-Screenshot

Ursache

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

Diagnose

  1. Identifizieren Sie den Richtlinienname "PopulateCache", den im Cache der Datei <CacheResource> verwendeten ungültigen Cache und die Umgebung, in der der Fehler aufgetreten ist. Sie finden alle diese Elemente in der Fehlermeldung. Beispiel: Im folgenden Fehler lautet der Name der PopulateCache-Richtlinie PopulateCache-Token, der Name des ungültigen Caches tokencache und der Umgebungsname test.

    Invalid cache resource reference tokencache in Step definition PopulateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. Untersuchen Sie den fehlgeschlagenen XML-Code der PopulationCache-Richtlinie und prüfen Sie, ob der für das <CacheResource>-Element angegebene Cache-Name mit der Fehlermeldung übereinstimmt.

    In diesem Beispiel lautet der im <CacheResource>-Element angegebene Cachename tokencache:

    <?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. 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 ADMIN > Umgebung > Test und prüfen Sie, ob der Cache auf dem Tab Caches der Umgebungskonfiguration 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 Umgebung test definiert ist, wird dieser Fehler ausgegeben:

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

Lösung

Achten Sie darauf, dass der Cache im <CacheResource> Element der PopulateCache-Richtlinie 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 wird als teilweise bereitgestellt gekennzeichnet:

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. Ein Message Processor ist eine interne Edge-Komponente, die den Flow des API-Traffics über Apigee Edge verarbeitet.

Lösung

Wenn Sie ein Private Cloud -Nutzer sind, folgen Sie der Anleitung unten:

  1. Listen Sie die API-Proxy-Bereitstellungen auf und ermitteln Sie, auf welchen Message Processors 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 UUIDs der Message Processors, auf denen der Fehler steps.cache.CacheNotFound auftritt. Ermitteln Sie den Hostnamen bzw. die IP-Adresse des Message Processors, der der UUID entspricht.

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

    apigee-service edge-message-processor restart

Wenn Sie ein Public Cloud-Nutzer sind oder das Problem in Private Cloud weiterhin besteht, wenden Sie sich an den Apigee-Support.