כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של
Apigee X. מידע
InvalidTimeout
הודעת שגיאה
כשפורסים את ה-API של ה-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 תיכשל.
אבחון
זיהוי הערך הלא חוקי שצוין לרכיב
<CacheLookupTimeoutInSeconds>
במדיניות LookupCache. המידע הזה מופיע בהודעת השגיאה. לדוגמה, בשגיאה הבאה, הערך הלא חוקי שמשמש לרכיב<CacheLookupTimeoutInSeconds>
הוא-1
:CacheLookupTimeoutInSeconds -1 value should be greater than zero.
יש לבדוק את כל כללי המדיניות של 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>
אם
<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
הודעת שגיאה
כשפורסים את ה-API של ה-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.
אבחון
זיהוי המטמון הלא חוקי המשמש ברכיב
<CacheResource>
של המדיניות של LookupCache והסביבה שבה אירעה השגיאה. ניתן למצוא את שני הפריטים האלה בהודעת השגיאה. לדוגמה, בשגיאה הבאה, השם של המטמון הלא חוקי הואtokencache
ושם הסביבה הואtest
.Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
יש לבדוק את כל כללי המדיניות של 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>
בודקים אם המטמון (שנקבע בשלב #1) הוגדר בסביבה הספציפית (שזוהה בשלב #1).
בממשק המשתמש של Edge, עוברים אל ADMIN (אדמין) > Environment (סביבה) > test (בדיקה) ובודקים אם המטמון קיים בכרטיסייה Caches (מטמון) של Environment Configuration (הגדרת סביבה). אם המטמון לא קיים, זו הסיבה לשגיאה.
לדוגמה, יש לשים לב בצילום המסך שלמטה שהמטמון בשם
tokencache
לא קיים.מאחר שהמטמון בשם
tokencache
לא מוגדר בסביבהtest
, מתקבלת הודעת השגיאה:Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
רזולוציה
צריך לוודא ששם המטמון שצוין ברכיב <CacheResource>
נוצר בסביבה שבה רוצים לפרוס את שרת ה-API של שרת ה-API.
למידע על אופן היצירה של המטמון, אפשר לעיין במאמר יצירה ועריכה של מטמון של סביבה.
CacheNotFound
הודעת שגיאה
כשפורסים את ה-API של שרת ה-proxy דרך ממשק המשתמש של 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
סיבה
השגיאה הזאת מתרחשת אם המטמון הספציפי שמוזכר בהודעת השגיאה לא נוצר ברכיב מסוים של מעבד ההודעות.
רזולוציה
אם אתם משתמשים בענן פרטי, עליכם לפעול לפי ההוראות הבאות:
פירוט הפריסות של שרת ה-API של שרת ה-proxy ובדיקה באילו מעבדי הודעות מוצגת השגיאה
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" ...
יש לשים לב למזהי ה-UUID של מעבד ההודעות שבהם הבחנת בשגיאה
steps.cache.CacheNotFound
. מזהים את שם המארח/כתובת ה-IP של מעבד ההודעות המשויך ל-UUID.מתחברים למעבד ההודעות הספציפי ומפעילים אותו מחדש באמצעות הפקודה הבאה:
apigee-service edge-message-processor restart
אם אתם משתמשים ב-Public Cloud או אם הבעיה נמשכת בענן פרטי, תוכלו לפנות לתמיכה של Apigee כדי לקבל עזרה.