Fehlerbehebung beim Deployment von Antwort-Cache-Richtlinien

Sie lesen gerade die Dokumentation zu Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen.

InvalidTimeout

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die 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

Fehler beim Speichern von Revision 2.

Ursache

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

Wenn <CacheLookupTimeoutInSeconds> beispielsweise -1 ist, schlägt das Deployment des API-Proxys fehl.

Diagnose

  1. Ermitteln Sie den ungültigen Wert für das Element <CacheLookupTimeoutInSeconds> in der ResponseCache-Richtlinie. 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 ResponseCache-Richtlinien im jeweiligen API-Proxy, in dem der Fehler aufgetreten ist. Es kann eine oder mehrere ResponseCache-Richtlinien geben, in denen das Element <CacheLookupTimeoutInSeconds> angegeben ist.

    Die folgende Richtlinie legt beispielsweise das Element <CacheLookupTimeoutInSeconds> auf -1 fest, was mit der Angabe im Fehlerstring übereinstimmt:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">
        <DisplayName>Response Cache-1</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref="request.uri" type="string"/>
        </CacheKey>
        <Scope>Exclusive</Scope>
        <ExpirySettings>
            <ExpiryDate/>
            <TimeOfDay/>
            <TimeoutInSec ref="">3600</TimeoutInSec>
        </ExpirySettings>
        <CacheLookupTimeoutInSeconds>-1</CacheLookupTimeoutInSeconds>
    </ResponseCache>
    
  3. Wenn <CacheLookupTimeoutInSeconds> als negative Ganzzahl angegeben wird, ist dies die Ursache des Fehlers.

Lösung

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

Um das oben dargestellte Beispiel für eine ResponseCache-Richtlinie zu korrigieren, können Sie <CacheLookupTimeoutInSeconds> element in 30 ändern.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">
    <DisplayName>Response Cache-1</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref="request.uri" type="string"/>
    </CacheKey>
    <Scope>Exclusive</Scope>
    <ExpirySettings>
        <ExpiryDate/>
        <TimeOfDay/>
        <TimeoutInSec ref="">3600</TimeoutInSec>
    </ExpirySettings>
    <CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>
</ResponseCache>

InvalidCacheResourceReference

Fehlermeldung

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

Error Deploying Revision revision_number to environment
Invalid cache resource reference cache_resource in Step definition response_cache_policy_name. Context Revision:revision_number;APIProxy:ResponseCache;Organization:organization;Environment:environment

Beispiel für Fehlermeldung

Error Deploying Revision 2 to prod
Invalid cache resource reference itemscache in Step definition ItemsResponseCache. Context Revision:2;APIProxy:StoresInventory;Organization:kkalckstein-eval;Environment:prod

Beispiel für einen Fehler-Screenshot

Fehler beim Deployment von Revision 2 in &quot;Prod&quot;.

Ursache

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

Diagnose

  1. Ermitteln Sie den ungültigen Cache, der im Element <CacheResource> der ResponseCache-Richtlinie verwendet wird, und die Umgebung, in der der Fehler aufgetreten ist. Sie finden beides in der Fehlermeldung. Im folgenden Fehler lautet der Name des ungültigen Cache beispielsweise itemscache und der Name der Umgebung prod.

    Invalid cache resource reference itemscache in Step definition ItemsResponseCache. Context Revision:2;APIProxy:StoresInventory;Organization:kkalckstein-eval;Environment:prod
    
  2. Prüfen Sie alle ResponseCache-Richtlinien im jeweiligen API-Proxy, in dem der Fehler aufgetreten ist. Ermitteln Sie die spezifische ResponseCache-Richtlinie, bei der der in Schritt 1 ermittelte ungültige Cache in Element <CacheResource> angegeben ist.

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

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ResponseCache async="false" continueOnError="false" enabled="true" name="ItemsResponseCache">
      <DisplayName>ItemsResponseCache</DisplayName>
      <Properties/>
      <CacheKey>
          <Prefix/>
          <KeyFragment ref="request.uri" type="string"/>
      </CacheKey>
      <CacheResource>itemscache</CacheResource>
      <Scope>Exclusive</Scope>
      <ExpirySettings>
          <ExpiryDate/>
          <TimeOfDay/>
          <TimeoutInSec ref="">3600</TimeoutInSec>
      </ExpirySettings>
      <SkipCacheLookup/>
      <SkipCachePopulation/>
    </ResponseCache>
    
  3. Prüfen Sie, ob der Cache (in Schritt #2 ermittelt) in der spezifischen Umgebung (in Schritt #1 identifiziert) definiert wurde.

    Rufen Sie in der Apigee-Benutzeroberfläche APIs > Umgebung konfigurieren auf und prüfen Sie, ob der Cache auf dem Tab Caches der jeweiligen Umgebung 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 itemscache nicht existiert.

    Tab für Umgebungskonfigurations-Caches.

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

    Invalid cache resource reference does_not_exist in Step definition Response-Cache-1. Context Revision:2;APIProxy:ResponseCache;Organization:kkalckstein-eval;Environment:prod
    

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.

ResponseCacheStepAttachmentNotAllowedReq

Fehlermeldung

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

Error Deploying Revision revision_number to environment
Response cache step definition response_cache_policy_name can not be attached more than once in the request path.

Beispiel für Fehlermeldung

Error Deploying Revision 2 to test
Response cache step definition Response-Cache-1 can not be attached more than once in the request path.

Screenshot eines Beispielfehlers

Fehler beim Bereitstellen von Version 2 zum Testen.

Ursache

Dieser Fehler tritt auf, wenn dieselbe ResponseCache-Richtlinie an mehrere Anfragepfade innerhalb eines Ablaufs eines API-Proxys angehängt wird.

Wenn Sie beispielsweise dieselbe ResponseCache-Richtlinie im Anfrage-PreFlow der Proxy- und der Ziel-Endpunkte angehängt haben, tritt dieser Fehler auf.

Diagnose

  1. Ermitteln Sie den Namen der ResponseCache-Richtlinie, die mehrmals angehängt ist. Diese Informationen finden Sie in der Fehlermeldung. Im folgenden Fehler lautet der Name der ResponseCache-Richtlinie beispielsweise "Response‐Cache‐1".

    Error Deploying Revision 2 to test
    Response cache step definition Response-Cache-1 can not be attached more than once in the request path.
    
  2. Prüfen Sie alle Anfrageabläufe in den Proxy- und den Ziel-Endpunkten des API-Proxys, in denen der Fehler aufgetreten ist. Wenn dieselbe ResponseCache-Richtlinie in zwei oder mehr Anfrageabläufen angehängt ist, ist dies die Ursache des Fehlers.

    Im folgenden Beispiel ist dieselbe ResponseCache-Richtlinie Response-Cache-1 im Anfragepfad der PreFlows "Standard-Proxy-Endpunkt" und "Standard-Ziel-Endpunkt" konfiguriert:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ProxyEndpoint name="default">
        <Description/>
        <FaultRules/>
        <PreFlow name="PreFlow">
            <Request>
                <Step>
                    <Name>Response-Cache-1</Name>
                </Step>
            </Request>
        ...
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <TargetEndpoint name="default">
        <Description/>
        <FaultRules/>
        <PreFlow name="PreFlow">
            <Request/>
            <Response/>
        </PreFlow>
        <PostFlow name="PostFlow">
            <Request>
                <Step>
                    <Name>Response-Cache-1</Name>
                </Step>
            </Request>
        ...
    

Lösung

Achten Sie darauf, dass eine ResponseCache-Richtlinie nur einem einzigen Anfragepfad für alle Abläufe des API-Proxys angehängt ist.

Entfernen Sie zur Behebung des Fehlers im Beispiel oben die ResponseCache-Richtlinie Response-Cache-1 aus einem der beiden Anfrageabläufe.

ResponseCacheStepAttachmentNotAllowedResp

Fehlermeldung

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

Error Deploying Revision revision_number to environment
Response cache step definition response_cache_policy_name can not be attached more than once in the response path.

Beispiel für Fehlermeldung

Error Deploying Revision 2 to test
Response cache step definition Response-Cache-1 can not be attached more than once in the response path.

Screenshot eines Beispielfehlers

Fehler beim Bereitstellen von Version 2 zum Testen.

Ursache

Dieser Fehler tritt auf, wenn dieselbe ResponseCache-Richtlinie an mehrere Antwortpfade innerhalb eines Ablaufs eines API-Proxys angehängt wird.

Wenn Sie beispielsweise dieselbe ResponseCache-Richtlinie im Antwort-PreFlow der Proxy- und der Ziel-Endpunkte angehängt haben, tritt dieser Fehler auf.

Diagnose

  1. Ermitteln Sie den Namen der ResponseCache-Richtlinie, die mehrmals angehängt ist. Diese Informationen finden Sie in der Fehlermeldung. In der folgenden Fehlermeldung lautet der Name der ResponseCache-Richtlinie beispielsweise Response-Cache-1.

    Error Deploying Revision 2 to test
    Response cache step definition Response-Cache-1 can not be attached more than once in the response path.
    
  2. Prüfen Sie alle Anfrageabläufe in den Proxy- und den Ziel-Endpunkten des API-Proxys, in denen der Fehler aufgetreten ist. Wenn dieselbe ResponseCache-Richtlinie in zwei oder mehr Antwortabläufen angehängt ist, ist dies die Ursache des Fehlers.

    Im folgenden Beispiel ist dieselbe ResponseCache-Richtlinie Response-Cache-1 im Antwortpfad der PreFlows "Standard-Proxy-Endpunkt" und "Standard-Ziel-Endpunkt" konfiguriert:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ProxyEndpoint name="default">
        <Description/>
        <FaultRules/>
        <PreFlow name="PreFlow">
            <Request>
                <Step>
                    <Name>Response-Cache</Name>
                </Step>
            </Request>
            <Response>
                <Step>
                    <Name>Response-Cache-1</Name>
                </Step>
            </Response>
        </PreFlow>
        ...
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <TargetEndpoint name="default">
        <Description/>
        <FaultRules/>
        <PreFlow name="PreFlow">
            <Request/>
            <Response/>
        </PreFlow>
        <PostFlow name="PostFlow">
            <Request/>
            <Response>
                <Step>
                    <Name>Response-Cache-1</Name>
                </Step>
            </Response>
        </PostFlow>
        ...
    

Lösung

Achten Sie darauf, dass eine ResponseCache-Richtlinie nur einem einzigen Antwortpfad für alle Abläufe des API-Proxys angehängt ist.

Entfernen Sie zur Behebung des Fehlers im Beispiel oben die ResponseCache-Richtlinie Response-Cache-1 aus einem der beiden Antwortpfade.

InvalidMessagePatternForErrorCode

Fehlermeldung

Das Deployment des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit einer der folgenden Fehlermeldungen fehl:

Error Deploying Revision revision_number to environment
Invalid message pattern found for error code steps.cache.InvalidSkipCacheLookUpCondition.

ODER

Error Deploying Revision revision_number to environment
Invalid message pattern found for error code steps.cache.InvalidSkipCachePopulationCondition.

Beispiel für Fehlermeldung

Error Deploying Revision 2 to prod
Invalid message pattern found for error code steps.cache.InvalidSkipCacheLookUpCondition.

ODER

Error Deploying Revision 2 to prod
Invalid message pattern found for error code steps.cache.InvalidSkipCachePopulationCondition.

Beispiel für einen Fehler-Screenshot

Fehler beim Deployment von Revision 2 in &quot;Prod&quot; – LookUp.

ODER

Fehler beim Deployment von Revision 2 in &quot;Prod&quot; – Population.

Ursache

Dieser Fehler tritt auf, wenn das Element <SkipCacheLookup> oder <SkipCachePopulation> in einer ResponseCache-Richtlinie eine ungültige Bedingung enthält.

Diagnose

  1. Prüfen Sie alle ResponseCache-Richtlinien im API-Proxy mit dem Fehler und prüfen Sie, ob Richtlinien mit Bedingungen für <SkipCacheLookup> und/oder <SkipCachePopulation> angegeben sind.

  2. Prüfen Sie, ob die für die Elemente <SkipCacheLookup> und/oder <SkipCachePopulation> angegebene Bedingung ungültig ist. Wenn ja, ist dies die Ursache des Fehlers.

    Im folgenden Beispiel verwendet das <SkipCachePopulation>-Element den JavaScript-Operator ===, um auf einen gleichen Wert und Typ zu prüfen. Dies ist ungültig.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">
        <DisplayName>Response Cache-1</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref="request.uri" type="string"/>
        </CacheKey>
        <Scope>Exclusive</Scope>
        <ExpirySettings>
            <ExpiryDate/>
            <TimeOfDay/>
            <TimeoutInSec ref="">3600</TimeoutInSec>
        </ExpirySettings>
        <CacheLookupTimeoutInSeconds>2</CacheLookupTimeoutInSeconds>
        <SkipCacheLookup>request.header.bypass-cache === "true"</SkipCacheLookup>
    </ResponseCache>
    

    Da der Operator === ungültig ist, erhalten Sie den Fehler:

    Invalid message pattern found for error code steps.cache.InvalidSkipCacheLookUpCondition.
    

Lösung

Achten Sie darauf, dass die für <SkipCacheLookup> und/oder <SkipCachePopulation> angegebene Bedingung immer gültig ist.

Zum Korrigieren der oben gezeigten Beispielantwort ResponseCache können Sie <SkipCacheLookup> ändern, um den Operator = zu verwenden:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">
    <DisplayName>Response Cache-1</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref="request.uri" type="string"/>
    </CacheKey>
    <Scope>Exclusive</Scope>
    <ExpirySettings>
        <ExpiryDate/>
        <TimeOfDay/>
        <TimeoutInSec ref="">3600</TimeoutInSec>
    </ExpirySettings>
    <CacheLookupTimeoutInSeconds>2</CacheLookupTimeoutInSeconds>
    <SkipCacheLookup>request.header.bypass-cache = "true"</SkipCacheLookup>
</ResponseCache>

CacheNotFound

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder 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 : Response-Cache-1, not found in organization : kkalckstein-eval__prod

Ursache

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

Lösung

Wenden Sie sich an den Apigee-Support, wenn Sie Hilfe brauchen.