חיפוש בעיות בפריסה של מדיניות המטמון

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

InvalidTimeout

הודעת שגיאה

כשפורסים את שרת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API, מופיעה הודעת השגיאה הבאה:

Error Saving Revision revision_number
CacheLookupTimeoutInSeconds value value should be greater than zero.

הודעת שגיאה לדוגמה

Error Saving Revision 2
CacheLookupTimeoutInSeconds -1 value should be greater than zero.

צילום מסך של שגיאה לדוגמה

סיבה

אם רכיב <CacheLookupTimeoutInSeconds> של מדיניות LookupCache מוגדר למספר שלילי, הפריסה של שרת ה-proxy ל-API תיכשל.

לדוגמה, אם הרכיב <CacheLookupTimeoutInSeconds> הוא -1, הפריסה של שרת ה-proxy ל-API תיכשל.

אבחון

  1. מזהים את הערך הלא חוקי שצוין לרכיב <CacheLookupTimeoutInSeconds> במדיניות LookupCache. המידע הזה מופיע בהודעת השגיאה. לדוגמה, בשגיאה הבאה, הערך הלא חוקי שמשמש לרכיב <CacheLookupTimeoutInSeconds> הוא -1:

    CacheLookupTimeoutInSeconds -1 value should be greater than zero.
    
  2. לבדוק את כל כללי המדיניות של LookupCache ב-Proxy הספציפי ל-API שבו התרחש הכשל. יכולה להיות מדיניות אחת או יותר של Lookupcache שבה מצוין הרכיב <CacheLookupTimeoutInSeconds>. צריך לזהות את המדיניות LookUpcache שבה צוין הערך הלא חוקי (שזוהה בשלב 1 למעלה) לרכיב <CacheLookupTimeoutInSeconds>.

    לדוגמה, הגדרת המדיניות הבאה מציינת את הערך של <CacheLookupTimeoutInSeconds> של -1, שתואם להודעת השגיאה:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <LookupCache async="false" continueOnError="false" enabled="true" name="LookupCache-Token">
        <DisplayName>LookupCache-Token</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref="request.queryparam.client_id"/>
        </CacheKey>
        <CacheLookupTimeoutInSeconds>-1</CacheLookupTimeoutInSeconds>
        <Scope>Exclusive</Scope>
        <ExpirySettings>
            <TimeoutInSec>3600</TimeoutInSec>
        </ExpirySettings>
        <AssignTo>usertoken</AssignTo>
    </LookupCache>
    
  3. אם ה-<CacheLookupTimeoutInSeconds> מצוין כמספר שלם שלילי, זו הסיבה לשגיאה.

רזולוציה

יש לוודא שהערך של הרכיב <CacheLookupTimeoutInSeconds> של המדיניות LookupCache מצוין תמיד כמספר שלם שאינו שלילי.

כדי לתקן את המדיניות לדוגמה של LookupCache שמוצגת למעלה, אפשר לשנות את הרכיב <CacheLookupTimeoutInSeconds> ל-30.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<LookupCache async="false" continueOnError="false" enabled="true" name="LookupCache-Token">
    <DisplayName>LookupCache-Token</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref="request.queryparam.client_id"/>
    </CacheKey>
    <CacheResource>tokencache</CacheResource>
    <CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>
    <Scope>Exclusive</Scope>
    <ExpirySettings>
        <TimeoutInSec>3600</TimeoutInSec>
    </ExpirySettings>
    <AssignTo>usertoken</AssignTo>
</LookupCache>

InvalidCacheResourceReference

הודעת שגיאה

כשפורסים את שרת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API, מופיעה הודעת השגיאה הבאה:

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:ResponseCache;Organization:[organization];Environment:[environment]

הודעת שגיאה לדוגמה

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

צילום מסך של שגיאה לדוגמה

סיבה

השגיאה הזו מתקבלת אם הרכיב <CacheResource> מוגדר לשם שאינו קיים בסביבה שבה נפרס שרת ה-proxy ל-API.

אבחון

  1. מזהים את המטמון הלא חוקי שנעשה בו שימוש ברכיב <CacheResource> של המדיניות LookupCache ואת הסביבה שבה התרחשה השגיאה. שני הפריטים האלה מופיעים בהודעת השגיאה. לדוגמה, בשגיאה הבאה, השם של המטמון הלא חוקי הוא tokencache ושם הסביבה הוא test.

    Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. לבדוק את כל כללי המדיניות של LookupCache ב-Proxy הספציפי ל-API שבו התרחש הכשל. צריך לזהות את המדיניות הספציפית של LookupCache שבה צוין המטמון הלא חוקי (שזוהה בשלב 1) ברכיב <CacheResource>.

    לדוגמה, המדיניות הבאה מציינת את הערך של <CacheResource> כ-tokencache, שתואם להודעת השגיאה:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <LookupCache async="false" continueOnError="false" enabled="true" name="LookupCache-Token">
        <DisplayName>LookupCache-Token</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref="request.queryparam.client_id"/>
        </CacheKey>
        <CacheResource>tokencache</CacheResource>
        <CacheLookupTimeoutInSeconds/>
        <Scope>Exclusive</Scope>
        <ExpirySettings>
            <TimeoutInSec>3600</TimeoutInSec>
        </ExpirySettings>
        <AssignTo>usertoken</AssignTo>
    </LookupCache>
    
  3. בודקים אם המטמון (שזוהה בשלב 1) הוגדר בסביבה הספציפית (זוהתה בשלב 1).

    בממשק המשתמש של Edge, עוברים לקטע אדמין > סביבה > לבדוק את ולבדוק אם המטמון קיים בכרטיסייה מטמון של תצורת סביבה. אם המטמון לא קיים, זו הסיבה לשגיאה.

    לדוגמה, אפשר לראות בצילום המסך שלמטה שהמטמון בשם tokencache לא קיים.

    בגלל שהמטמון בשם tokencache לא מוגדר בסביבת test, תקבלו את השגיאה:

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

רזולוציה

יש לוודא ששם המטמון שצוין ברכיב <CacheResource> נוצר בסביבה שבה רוצים לפרוס את שרת ה-proxy ל-API.

עיינו במאמר יצירה ועריכה של מטמון של סביבה למידע על יצירת המטמון.

CacheNotFound

הודעת שגיאה

במהלך פריסה של שרת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge Management API מוצגת הודעת שגיאה כזו, וסטטוס הפריסה של ה-proxy ל-API מסומן כפרוסה באופן חלקי:

Error: Cache : cache_resource, not found in organization : organization__environment.

הודעת שגיאה לדוגמה

Error Cache : configCache, not found in organization : kkalckstein-eval__test

סיבה

השגיאה הזו מתקבלת אם המטמון הספציפי שצוין בהודעת השגיאה לא נוצר ברכיב ספציפי של מעבד הודעות.

רזולוציה

אם אתם משתמשים בענן פרטי, עליכם לפעול לפי ההוראות הבאות:

  1. מציגים את רשימת פריסות ה-proxy ל-API וקובעים באילו מעבדי הודעות מופיעה השגיאה steps.cache.CacheNotFound.

    curl -u $USERID:$USERPASSWORD http://:8080/v1/organizations//environments//apis//revisions//deployments

    פלט לדוגמה

    {
      "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. שימו לב למזהי UUID של מעבד ההודעות שבהם מופיעה השגיאה steps.cache.CacheNotFound. מזהים את שם המארח/כתובת ה-IP של מעבד ההודעות שמשויך ל-UUID.

  3. מתחברים למעבד ההודעות הספציפי ומפעילים אותו מחדש באמצעות הפקודה הבאה:

    apigee-service edge-message-processor restart

אם אתם משתמשים ב-Public Cloud או אם הבעיה נמשכת בשביל ענן פרטי, אתם יכולים לפנות לתמיכה של Apigee לקבלת עזרה.