Rozwiązywanie problemów związanych z błędem wdrożenia zasady pamięci podręcznej odpowiedzi

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

InvalidTimeout

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się 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.

Przykładowy zrzut ekranu z błędem

Przyczyna

Jeśli element <CacheLookupTimeoutInSeconds> zasady ResponseCache ma wartość ujemną, wdrożenie serwera proxy interfejsu API się nie uda.

Jeśli na przykład <CacheLookupTimeoutInSeconds> to -1, wdrożenie serwera proxy interfejsu API się nie uda.

Diagnostyka

  1. Identyfikuje nieprawidłową wartość używaną dla elementu <CacheLookupTimeoutInSeconds> w zasadzie ResponseCache. Te informacje znajdziesz w komunikacie o błędzie. Na przykład w tym błędzie nieprawidłowa wartość użyta w elemencie <CacheLookupTimeoutInSeconds> to -1:

    CacheLookupTimeoutInSeconds -1 value should be greater than zero.
    
  2. Sprawdź wszystkie zasady ResponseCache na konkretnym serwerze proxy interfejsu API, na którym 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 tym, co podano w komunikacie o błędzie:

    <?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
    ResponseCache async="false" continueOnError=">false<" enab>led="true&q<uot; name=&q>uot;R<esponse-Cac>he-1&<quot;
      >  Display<NameRes>ponse Cac<he-1/DisplayName
        Properties/
        CacheKe>y
       <     Pref>ix/
     <     >  KeyFrag<ment r>ef=&q<uot;request.ur>i" t<ype="s>tring&quo<t;/
        /C>acheKey
     <   ScopeExclusive/S>cope<
        ExpirySe>tting<s
            Expir>yDate</
            TimeOfDay/
          >  <TimeoutInSec ref="">;<3600/TimeoutIn>Sec
        /ExpirySettings
        CacheLookupTimeoutInSeconds-1/CacheLookupTimeoutInSeconds
    /ResponseCache
    
  3. Jeśli parametr <CacheLookupTimeoutInSeconds> jest określony jako ujemna liczba całkowita, to jest przyczyną błędu.

Rozdzielczość

Upewnij się, że wartość elementu <CacheLookupTimeoutInSeconds> zasady ResponseCache jest zawsze określana jako nieujemna liczba całkowita.

Aby poprawić widoczną powyżej przykładową zasadę ResponseCache, możesz zmienić <CacheLookupTimeoutInSeconds> element na 30.

<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
ResponseCache async="false" continueOnError=">false<" enab>led="true&q<uot; name=&q>uot;R<esponse-Cac>he-1&<quot;
  >  Display<NameRes>ponse Cac<he-1/DisplayName
    Properties/
    CacheKe>y
   <     Pref>ix/
 <     >  KeyFrag<ment r>ef=&q<uot;request.ur>i" t<ype="s>tring&quo<t;/
    /C>acheKey
 <   ScopeExclusive/S>cope<
    ExpirySe>tting<s
        Expir>yDate</
        TimeOfDay/
      >  <TimeoutInSec ref="">;<3600/TimeoutIn>Sec
    /ExpirySettings
    CacheLookupTimeoutInSeconds30/CacheLookupTimeoutInSeconds
/ResponseCache

InvalidCacheResourceReference

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się 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

Przykładowy zrzut ekranu z 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

  1. Określ nieprawidłową pamięć podręczną używaną w elemencie <CacheResource> zasady pamięci podręcznej odpowiedzi i środowisku, w którym wystąpił błąd. Oba te elementy znajdziesz w komunikacie o błędzie. Na przykład w tym błędzie nazwa nieprawidłowej pamięci podręcznej to itemscache, a nazwa środowiska to prod.

    Invalid cache resource reference itemscache in Step definition ItemsResponseCache. Context Revision:2;APIProxy:StoresInventory;Organization:kkalckstein-eval;Environment:prod
    
  2. Sprawdź wszystkie zasady ResponseCache na konkretnym serwerze proxy API, na którym wystąpił błąd miało miejsce. Określ konkretną zasadę ResponseCache, w której nieprawidłowa pamięć podręczna (określony w kroku 1) jest określony w elemencie <CacheResource>.

    Na przykład ta zasada określa wartość <CacheResource> jako itemscache, który pasuje do treści komunikatu o błędzie:

    <?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
    ResponseCache async="false" continueOnError="fa>lse<" enab>led="true&quo<t; name=&quo>t;I<temsRespons>eCa<che">;
      Dis<playNam>eItemsR<esponseCache/DisplayName
      Properties/
      Cac>heK<ey
          >Pre<fix/
          Ke>yFragment <ref="requ>est<.uri&>quot; typ<e=&quo>t;s<tring"/
     > /Cache<Key
      Cache>Resourc<eitemscach>e/Cache<Resource
      ScopeExc>lusi<ve/Scope
      Ex>pir<ySettings
         > Ex<piryDate/
          >Tim<eOfDay/
          Timeou>t<InSec ref=&quo>t;"3600/TimeoutInSec
      /ExpirySettings
      SkipCacheLookup/
      SkipCachePopulation/
    /ResponseCache
    
  3. Sprawdź, czy pamięć podręczna (określona w kroku 2) jest zdefiniowana w konkretnym środowisku (określone w kroku 1).

    W interfejsie Edge otwórz Interfejsy API > Environment Configuration (Konfiguracja środowiska) i sprawdź, czy pamięć podręczna jest dostępna na karcie Caches (Pamięci podręczne) w danym środowisku. Jeśli pamięć podręczna nie istnieje, to jest przyczyną błędu.

    Na przykład na zrzucie ekranu poniżej zwróć uwagę, że pamięć podręczna o nazwie itemscache nie istnieje.

    Pamięć podręczna o nazwie itemscache nie jest zdefiniowana w środowisku prod, dlatego pojawia się 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ść

Sprawdź, czy 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.

Więcej informacji o tworzeniu pamięci podręcznej 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 UI lub Edge Management API nie powiedzie się i wyświetli się 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.

Przykładowy zrzut ekranu z błędem

Przyczyna

Ten błąd występuje, jeśli ta sama zasada ResponseCache jest dołączona do wielu ścieżek żądań w dowolnych przepływach serwera proxy interfejsu API.

Jeśli na przykład masz tę samą zasadę ResponseCache do żądania wstępnego przepływu żądania zarówno dla serwera proxy, jak i docelowego punktu końcowego, to wystąpi ten błąd.

Diagnostyka

  1. Określ nazwę zasady ResponseCache, która jest dołączona więcej niż raz. Te informacje 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.
    
  2. Sprawdź wszystkie przepływy żądań w serwerach proxy i docelowych punktach końcowych serwera proxy interfejsu API, w których wystąpił błąd. Jeśli ta sama zasada ResponseCache jest przyłączona do co najmniej 2 przepływów żądań, to jest przyczyną 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ślnym docelowym punkcie końcowym PreFlow:

    <?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes">?
    Pro<xyEndpoint n>ame=&<quot;defaul>t&quo<t;
        Description/
      >  FaultRu<les/
      >  PreFlow nam<e=&q>uot;PreFlow"<
       >     Request
       <     >    Step
        <     >       Na<meRespon>se-Cache-<1/Name
                /Step
            /Request
        ...
    ?xm>l< version="1.0" enco>ding=<"UTF-8&>quot;< standalone>=&quo<t;yes"?
    TargetEnd>point nam<e=">default&q<uot;
        >Descr<iption/
    >    F<aultRules/
        PreFlow n>ame="<;PreFlo>w"
         <   R>equest/
            R<espo>nse/
        /PreFlo<w
       > PostFlow nam<e=&qu>ot;PostFl<ow">
            Request
                Step
                    NameResponse-Cache-1/Name
                /Step
            /Request
        ...
    

Rozdzielczość

Sprawdź, czy zasada ResponseCache jest dołączona tylko do jednej ścieżki żądania we wszystkich przepływach serwera proxy interfejsu API.

Aby poprawić powyższy przykład, usuń zasadę ResponseCache Response-Cache-1 z jednego z 2 przepływów żądań.

ResponseCacheStepAttachmentNotAllowedResp

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się 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.

Przykładowy zrzut ekranu z błędem

Przyczyna

Ten błąd występuje, jeśli ta sama zasada ResponseCache jest dołączona do wielu ścieżek odpowiedzi w dowolnych przepływach serwera proxy interfejsu API.

Jeśli na przykład masz tę samą zasadę ResponseCache we wstępnym przepływie odpowiedzi zarówno serwera proxy, jak i docelowego punktu końcowego, to wystąpi ten błąd.

Diagnostyka

  1. Określ nazwę zasady ResponseCache, która jest dołączona więcej niż raz. Te informacje 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 response path.
    
  2. Sprawdź wszystkie przepływy żądań w serwerach proxy i docelowych punktach końcowych serwera proxy interfejsu API, w których wystąpił błąd. Jeśli ta sama zasada ResponseCache jest dołączona w co najmniej dwóch przepływach odpowiedzi, to 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&quo>t<; standalone="yes">?
    Pro<xyEndpoint n>ame=&<quot;defaul>t&quo<t;
        Description/
      >  FaultRu<les/
      >  PreFlow nam<e=&q>uot;PreFlow"<
       >     Request
     <     >      Step
      <     >         <NameResp>onse-Cach<e/Name
     >           /S<tep
    >        /Request
    <    >    Response
       <     >    Step
        <     >       Na<meRespons>e-Cac<he-1/Nam>e
           <     /Step
            /Response
        /PreFlow
        ...
    ?xm>l< version="1.0" enco>ding=<"UTF-8&>quot;< standalone>=&quo<t;yes"?
    TargetEnd>point nam<e=">default&q<uot;
        >Descr<iption/
    >    F<aultRules/
        PreFlow n>ame="<;PreFlow>"
      <      Re>quest/
          <  Re>sponse/
        /PreF<low
    >    PostFlow nam<e=&qu>ot;PostFlow&q<uot;
    >        R<equest/
     >     <  Respons>e
                Step
                    NameResponse-Cache-1/Name
                /Step
            /Response
        /PostFlow
        ...
    

Rozdzielczość

Sprawdź, czy zasada ResponseCache jest dołączona tylko do jednej ścieżki odpowiedzi we wszystkich przepływach serwera proxy interfejsu API.

Aby poprawić ten przykład, usuń zasadę Response-Cache-1 ResponseCache z jednej z 2 ścieżek odpowiedzi.

InvalidMessagePatternForErrorCode

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API przy użyciu interfejsu Edge UI lub Edge Management API zakończy się niepowodzeniem i wyświetli się jeden z tych komunikatów o błędzie:

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.

Przykładowy zrzut ekranu z błędem

LUB

Przyczyna

Ten błąd występuje, jeśli element <SkipCacheLookup> lub <SkipCachePopulation> w zasadzie ResponseCache zawiera nieprawidłowy warunek.

Diagnostyka

  1. Sprawdź wszystkie zasady ResponseCache na serwerze proxy interfejsu API, w którym wystąpił błąd, i sprawdź, czy istnieją zasady z warunkami określonymi dla elementów <SkipCacheLookup> lub <SkipCachePopulation>.

  2. Sprawdź, czy warunek podany w elemencie <SkipCacheLookup> lub <SkipCachePopulation> jest nieprawidłowy. Jeśli tak, to to jest przyczyną błędu.

    W poniższym przykładzie element <SkipCachePopulation>element używa operatora JavaScript === do wyszukania tej samej wartości i typu równego, który jest nieprawidłowy.

    <?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
    ResponseCache async="false" continueOnError=">false<" enab>led="true&q<uot; name=&q>uot;R<esponse-Cac>he-1&<quot;
      >  Display<NameRes>ponse Cac<he-1/DisplayName
        Properties/
        CacheKe>y
       <     Pref>ix/
     <     >  KeyFrag<ment r>ef=&q<uot;request.ur>i" t<ype="s>tring&quo<t;/
        /C>acheKey
     <   ScopeExclusive/S>cope<
        ExpirySe>tting<s
            Expir>yDate</
            TimeOfDay/
          > < TimeoutInSec ref="&quo>t;360<0/TimeoutInSec
    >    /ExpirySettings
        CacheLookupTim<eoutInSeconds2/C>a<cheLookupTimeo>utInSeconds
        SkipCacheLookuprequest.header.bypass-cache === "true"/SkipCacheLookup
    /ResponseCache
    

    Operator === jest nieprawidłowy, więc pojawia się błąd:

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

Rozdzielczość

Upewnij się, że warunek określony w elementach <SkipCacheLookup> lub <SkipCachePopulation> jest zawsze prawidłowy.

Aby poprawić widoczną powyżej przykładową zasadę ResponseCache, możesz zmodyfikować <SkipCacheLookup>, używając operatora =:

<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
ResponseCache async="false" continueOnError=">false<" enab>led="true&q<uot; name=&q>uot;R<esponse-Cac>he-1&<quot;
  >  Display<NameRes>ponse Cac<he-1/DisplayName
    Properties/
    CacheKe>y
   <     Pref>ix/
 <     >  KeyFrag<ment r>ef=&q<uot;request.ur>i" t<ype="s>tring&quo<t;/
    /C>acheKey
 <   ScopeExclusive/S>cope<
    ExpirySe>tting<s
        Expir>yDate</
        TimeOfDay/
      > < TimeoutInSec ref="&quo>t;360<0/TimeoutInSec
>    /ExpirySettings
    CacheLookupT<imeoutInSeconds2>/<CacheLookupTim>eoutInSeconds
    SkipCacheLookuprequest.header.bypass-cache = "true"/SkipCacheLookup
/ResponseCache

CacheNotFound

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API przy użyciu 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 pamięć podręczna wspomniana 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 instrukcje:

  1. Wyświetl listę wdrożeń proxy interfejsu API i określ, w których procesorach wiadomości występuje 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"
    
  2. Zanotuj identyfikatory UUID procesora wiadomości, w których występuje błąd steps.cache.CacheNotFound. Zidentyfikuj nazwę hosta/adres IP procesora wiadomości na podstawie identyfikatora UUID.

  3. Zaloguj się w określonym procesorze wiadomości i uruchom go ponownie za pomocą następującego polecenia:

    apigee-service edge-message-processor restart

Jeśli korzystasz z usługi Public Cloud lub jeśli problem występuje w usłudze Private Cloud, skontaktuj się z zespołem pomocy Apigee.