<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 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
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.
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>
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 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 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
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
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 beispielsweiseitemscache
und der Name der Umgebungprod
.Invalid cache resource reference itemscache in Step definition ItemsResponseCache. Context Revision:2;APIProxy:StoresInventory;Organization:kkalckstein-eval;Environment:prod
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>
so an:itemscache
, was mit dem Inhalt 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>
Prüfen Sie, ob der Cache (in Schritt #2 ermittelt) in der spezifischen Umgebung (in Schritt #1 identifiziert) definiert wurde.
Gehen Sie in der Edge-Benutzeroberfläche zu APIs > Umgebungskonfiguration und prüfen Sie auf dem Tab Caches in der jeweiligen Umgebung, 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
itemscache
nicht existiert.Da der Cache mit dem Namen
itemscache
nicht in derprod
-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.
Informationen zum Erstellen des Cache finden Sie unter Erstellen und Bearbeiten eines Umgebungscaches.
ResponseCacheStepAttachmentNotAllowedReq
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 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.
Beispiel für einen Fehler-Screenshot
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
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.
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 Edge-Benutzeroberfläche oder die Edge-Verwaltungs-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.
Beispiel für einen Fehler-Screenshot
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
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.
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
Die Bereitstellung des API-Proxys über die Edge-Benutzeroberfläche oder die Edge-Verwaltungs-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.
OR
Error Deploying Revision 2 to prod
Invalid message pattern found for error code steps.cache.InvalidSkipCachePopulationCondition.
Beispiel für einen Fehler-Screenshot
ODER
Ursache
Dieser Fehler tritt auf, wenn das Element <SkipCacheLookup>
oder <SkipCachePopulation>
in einer ResponseCache-Richtlinie eine ungültige Bedingung enthält.
Diagnose
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.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 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 : 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.
Auflösung
Wenn Sie Private Cloud-Nutzer sind, gehen Sie so vor:
Listen Sie die API-Proxy-Bereitstellungen auf und ermitteln Sie, bei welchen Message Processor der Fehler
steps.cache.CacheNotFound
auftritt.Beispielausgabe
curl -u $USERID:$USERPASSWORD http://<management-server-host>:8080/v1/organizations/<org-name>/environments/<env-name>/apis/<apiproxy-name>/revisions/<revision-number>/deployments { "aPIProxy" : "ResponseCache", "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 : Response-Cache-1, not found in organization : kkalckstein-eval__prod", "errorCode" : "steps.cache.CacheNotFound", "status" : "error", "type" : [ "message-processor" ], "uUID" : "a8f9ce0b-c32d-48a9-b26c-9c75d8bf467d" }, ... "state" : "deployed" } ], "name" : "2", "organization" : "kkalckstein-eval"
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 anhand der UUID.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.