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

הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.

לעיון במסמכי התיעוד של Apigee Edge

InvalidTimeout

הודעת השגיאה

פריסת ה-proxy ל-API דרך ממשק המשתמש או ה-API של Apigee נכשלת ומוצגת הודעת השגיאה הבאה:

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.

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

שגיאה בשמירת הגרסה 2.

מטרה

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

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

אבחון

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

    CacheLookupTimeoutInSeconds -1 value should be greater than zero.
    
  2. בודקים את כל כללי המדיניות של LookupCache ב-API Proxy הספציפי שבו התרחשה השגיאה. יכול להיות שיש כללי מדיניות של 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 דרך ממשק המשתמש או ה-API של Apigee נכשלת ומוצגת הודעת השגיאה הבאה:

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

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

שגיאה בפריסת גרסה 2 לבדיקה.

מטרה

השגיאה הזו מתרחשת אם הרכיב <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 ב-API Proxy הספציפי שבו התרחשה הכשל. מזהים את מדיניות 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).

    בממשק המשתמש של Apigee, עוברים אל ADMIN > Environment > test ובודקים אם המטמון קיים בכרטיסייה Caches של Environment Configuration. אם המטמון לא קיים, זו הסיבה לשגיאה.

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

    הכרטיסייה Environment Configuration Caches (מטמון של הגדרות הסביבה).

    מכיוון שהמטמון שנקרא 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 דרך ממשק המשתמש או ה-API של Apigee מובילה להודעת שגיאה כמו זו, וסטטוס הפריסה של proxy ל-API מסומן כפריסה חלקית:

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

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

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

מטרה

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

רזולוציה

לקבלת עזרה, אפשר לפנות אל התמיכה של Apigee.