Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
InvalidTimeout
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:
Error Saving Revision revision_number CacheLookupTimeoutInSeconds value value should be greater than zero.
Przykładowy komunikat o błędzie
Error Saving Revision 2
CacheLookupTimeoutInSeconds -1 value should be greater than zero.
Zrzut ekranu z przykładowym błędem
Przyczyna
Jeśli element <CacheLookupTimeoutInSeconds>
zasady ResponseCache jest ustawiony na liczbę ujemną, wdrożenie serwera proxy interfejsu API nie powiedzie się.
Jeśli na przykład <CacheLookupTimeoutInSeconds>
to -1
, wdrożenie serwera proxy interfejsu API nie powiedzie się.
Diagnostyka
Wskaż nieprawidłową wartość używaną dla elementu
<CacheLookupTimeoutInSeconds>
w zasadzie ResponseCache. Informacje te znajdziesz w komunikacie o błędzie. Na przykład w poniższym błędzie nieprawidłowa wartość użyta w elemencie<CacheLookupTimeoutInSeconds>
to-1
:CacheLookupTimeoutInSeconds -1 value should be greater than zero.
Sprawdź wszystkie zasady ResponseCache w konkretnym serwerze proxy interfejsu API, gdzie wystąpił błąd. Element
<CacheLookupTimeoutInSeconds>
może zawierać co najmniej 1 zasadę ResponseCache.Na przykład ta konfiguracja zasad ustawia
<CacheLookupTimeoutInSeconds>
na-1
, co jest zgodne z treścią komunikatu o błędzie:<?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>
Jeśli
<CacheLookupTimeoutInSeconds>
jest podany jako ujemna liczba całkowita, to jest przyczyną błędu.
Rozdzielczość
Upewnij się, że wartość elementu <CacheLookupTimeoutInSeconds>
zasady ResponseCache jest zawsze określona jako nieujemna liczba całkowita.
Aby poprawić powyższą przykładową zasadę ResponseCache, można zmienić <CacheLookupTimeoutInSeconds> element
na 30
.
<?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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:
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
Przykładowy komunikat o błędzie
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
Zrzut ekranu z przykładowym błędem
Przyczyna
Ten błąd występuje, jeśli element <CacheResource>
w zasadzie ResponseCache jest ustawiony na nazwę, która nie istnieje w środowisku, w którym wdrażany jest serwer proxy interfejsu API.
Diagnostyka
Zidentyfikuj nieprawidłową pamięć podręczną używaną w elemencie
<CacheResource>
zasady buforowania odpowiedzi oraz w środowisku, w którym wystąpił błąd. Oba te elementy znajdziesz w komunikacie o błędzie. Na przykład w poniższym błędzie nazwa nieprawidłowej pamięci podręcznej toitemscache
, a nazwa środowiska toprod
.Invalid cache resource reference itemscache in Step definition ItemsResponseCache. Context Revision:2;APIProxy:StoresInventory;Organization:kkalckstein-eval;Environment:prod
Sprawdź wszystkie zasady ResponseCache w konkretnym serwerze proxy interfejsu API, gdzie wystąpił błąd. Zidentyfikuj konkretną zasadę ResponseCache, w której podana jest nieprawidłowa pamięć podręczna (określona w kroku 1) w elemencie
<CacheResource>
.Na przykład ta zasada określa wartość
<CacheResource>
jakoitemscache
, która jest zgodna z treścią komunikatu o błędzie:<?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>
Sprawdź, czy pamięć podręczna (określona w kroku 2) została zdefiniowana w konkretnym środowisku (określonym w kroku 1).
W interfejsie użytkownika Edge otwórz Interfejsy API > Konfiguracja środowiska i na karcie Pamięć podręczna sprawdź, czy pamięć podręczna znajduje się w danym środowisku. Jeśli pamięć podręczna nie istnieje, jest to przyczyna błędu.
Na przykład na zrzucie ekranu poniżej widać, że pamięć podręczna o nazwie
itemscache
nie istnieje.Ponieważ pamięć podręczna o nazwie
itemscache
nie jest zdefiniowana w środowiskuprod
, występuje błąd:Invalid cache resource reference does_not_exist in Step definition Response-Cache-1. Context Revision:2;APIProxy:ResponseCache;Organization:kkalckstein-eval;Environment:prod
Rozdzielczość
Upewnij się, że nazwa pamięci podręcznej określona w elemencie <CacheResource>
została utworzona w środowisku, w którym chcesz wdrożyć serwer proxy interfejsu API.
Informacje o tym, jak utworzyć pamięć podręczną, znajdziesz w artykule Tworzenie i edytowanie pamięci podręcznej środowiska.
ResponseCacheStepAttachmentNotAllowedReq
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:
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.
Przykładowy komunikat o błędzie
Error Deploying Revision 2 to test
Response cache step definition Response-Cache-1 can not be attached more than once in the request path.
Zrzut ekranu z przykładowym błędem
Przyczyna
Ten błąd występuje, jeśli ta sama zasada ResponseCache jest połączona z wieloma ścieżkami żądań w dowolnym przepływie serwera proxy interfejsu API.
Jeśli na przykład masz tę samą zasadę ResponseCache, która jest dołączana do wstępnego przepływu żądania zarówno serwera proxy, jak i docelowych punktów końcowych, występuje ten błąd.
Diagnostyka
Wskaż nazwę zasady ResponseCache, która jest dołączona więcej niż raz. Informacje te znajdziesz w komunikacie o błędzie. Na przykład w tym błędzie nazwa zasady ResponseCache to 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.
Sprawdź wszystkie przepływy żądań w serwerze proxy i docelowych punktach końcowych interfejsu API serwera proxy, w których wystąpił błąd. Jeśli ta sama zasada ResponseCache jest powiązana w co najmniej 2 przepływach żądań, jest to przyczyna błędu.
W poniższym przykładzie ta sama zasada ResponseCache (
Response-Cache-1
) jest skonfigurowana w ścieżce żądania domyślnego punktu końcowego serwera proxy PreFlow i domyślnego docelowego punktu końcowego PreFlow:<?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> ...
Rozdzielczość
Sprawdź, czy zasada ResponseCache jest połączona tylko z jedną ścieżką żądania we wszystkich przepływach interfejsu API serwera proxy.
Aby poprawić powyższy przykład, usuń zasadę ResponseCache (Response-Cache-1
) z jednego z dwóch przepływów żądań.
ResponseCacheStepAttachmentNotAllowedResp
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:
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.
Przykładowy komunikat o błędzie
Error Deploying Revision 2 to test
Response cache step definition Response-Cache-1 can not be attached more than once in the response path.
Zrzut ekranu z przykładowym błędem
Przyczyna
Ten błąd występuje, jeśli ta sama zasada ResponseCache jest połączona z wieloma ścieżkami odpowiedzi w obrębie dowolnych przepływów serwera proxy interfejsu API.
Jeśli na przykład masz tę samą zasadę ResponseCache, która jest dołączana do wstępnego przepływu odpowiedzi zarówno serwera proxy, jak i docelowych punktów końcowych, występuje ten błąd.
Diagnostyka
Wskaż nazwę zasady ResponseCache, która jest dołączona więcej niż raz. Informacje te znajdziesz w komunikacie o błędzie. Na przykład w poniższym błędzie nazwa zasady ResponseCache to
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.
Sprawdź wszystkie przepływy żądań w serwerze proxy i docelowych punktach końcowych interfejsu API serwera proxy, w których wystąpił błąd. Jeśli ta sama zasada ResponseCache jest powiązana w co najmniej 2 przepływach odpowiedzi, jest to przyczyna błędu.
W poniższym przykładzie ta sama zasada ResponseCache (
Response-Cache-1
) jest skonfigurowana w ścieżce odpowiedzi domyślnego punktu końcowego serwera proxy PreFlow i domyślnego docelowego punktu końcowego PreFlow:<?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> ...
Rozdzielczość
Sprawdź, czy zasada ResponseCache jest połączona tylko z jedną ścieżką odpowiedzi we wszystkich przepływach interfejsu API serwera proxy.
Aby poprawić powyższy przykład, usuń zasadę ResponseCache (Response-Cache-1
) z jednej z 2 ścieżek odpowiedzi.
InvalidMessagePatternForErrorCode
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest jeden z tych komunikatów o błędach:
Error Deploying Revision revision_number to environment Invalid message pattern found for error code steps.cache.InvalidSkipCacheLookUpCondition.
LUB
Error Deploying Revision revision_number to environment Invalid message pattern found for error code steps.cache.InvalidSkipCachePopulationCondition.
Przykładowy komunikat o błędzie
Error Deploying Revision 2 to prod
Invalid message pattern found for error code steps.cache.InvalidSkipCacheLookUpCondition.
LUB
Error Deploying Revision 2 to prod
Invalid message pattern found for error code steps.cache.InvalidSkipCachePopulationCondition.
Zrzut ekranu z przykładowym błędem
LUB
Przyczyna
Ten błąd występuje, jeśli element <SkipCacheLookup>
lub <SkipCachePopulation>
w zasadzie ResponseCache zawiera nieprawidłowy warunek.
Diagnostyka
Sprawdź wszystkie zasady ResponseCache na serwerze proxy interfejsu API, w których wystąpił błąd, i sprawdź, czy istnieją zasady z warunkami określonymi dla
<SkipCacheLookup>
lub elementów<SkipCachePopulation>
.Sprawdź, czy warunek określony w elemencie
<SkipCacheLookup>
lub<SkipCachePopulation>
jest nieprawidłowy. Jeśli tak, to jest przyczyna błędu.W poniższym przykładzie element
<SkipCachePopulation>
używa operatora JavaScript === do sprawdzania, czy wartości są równe i typ równości, co jest nieprawidłowy.<?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>
Ponieważ operator
===
jest nieprawidłowy, występuje błąd:Invalid message pattern found for error code steps.cache.InvalidSkipCacheLookUpCondition.
Rozdzielczość
Upewnij się, że warunek określony dla elementów <SkipCacheLookup>
lub <SkipCachePopulation>
jest zawsze prawidłowy.
Aby poprawić przykładową zasadę ResponseCache powyższą, można zmodyfikować <SkipCacheLookup>
, używając operatora =
:
<?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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub Edge Management API powoduje wyświetlenie takiego komunikatu o błędzie, a stan wdrożenia serwera proxy interfejsu API jest oznaczony jako częściowo wdrożony:
Error: Cache : cache_resource, not found in organization : organization__environment.
Przykładowy komunikat o błędzie
Error Cache : Response-Cache-1, not found in organization : kkalckstein-eval__prod
Przyczyna
Ten błąd występuje, jeśli określona pamięć podręczna wymieniona w komunikacie o błędzie nie została utworzona w konkretnym komponencie procesora wiadomości.
Rozdzielczość
Jeśli jesteś użytkownikiem Private Cloud, wykonaj te czynności:
Wyświetl listę wdrożeń proxy interfejsu API i sprawdź, które procesory wiadomości mają błąd
steps.cache.CacheNotFound
.Przykładowe dane wyjściowe
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"
Zapisz identyfikatory UUID procesora wiadomości, w którym występuje błąd
steps.cache.CacheNotFound
. Na podstawie identyfikatora UUID określ nazwę hosta/adres IP procesora wiadomości.Zaloguj się do określonego procesora wiadomości i uruchom go ponownie za pomocą tego polecenia:
apigee-service edge-message-processor restart
Jeśli jesteś użytkownikiem chmury publicznej lub problem występuje w chmurze Private Cloud, skontaktuj się z zespołem pomocy Apigee.