כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של
Apigee X. מידע
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:[apiproxy_name];Organization:[organization];Environment:[environment]
הודעת שגיאה לדוגמה
Error Deploying Revision 2 to test
Invalid cache resource reference tokencache in Step definition PopulateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
צילום מסך של שגיאה לדוגמה
סיבה
השגיאה הזו מתרחשת אם הרכיב <CacheResource>
במדיניות PopulateCache מוגדר לשם שלא קיים בסביבה שבה נפרס שרת ה-proxy של ה-API.
אבחון
יש לזהות את שם המדיניות PopulateCache, את המטמון הלא חוקי שבו נעשה שימוש ברכיב
<CacheResource>
של המדיניות ואת הסביבה שבה אירעה השגיאה. תוכלו למצוא את כל הפריטים האלה בהודעת השגיאה. לדוגמה, בשגיאה הבאה שם המדיניות של PopulateCache הואPopulateCache-Token
, שם המטמון הלא חוקי הואtokencache
ושם הסביבה הואtest
.Invalid cache resource reference tokencache in Step definition PopulateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
צריך לבדוק את קובץ ה-XML של המדיניות מסוג PopulateCache שנכשל ולוודא ששם המטמון שצוין לרכיב
<CacheResource>
תואם להודעת השגיאה.בדוגמה הזו, שם המטמון שמצוין ברכיב
<CacheResource>
הואtokencache
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <PopulateCache async="false" continueOnError="false" enabled="true" name="PopulateCache-Token"> <DisplayName>PopulateCache-Token</DisplayName> <Properties/> <CacheKey> <Prefix/> <KeyFragment ref="request.queryparam.client_id"/> </CacheKey> <CacheResource>tokencache</CacheResource> <Scope>Exclusive</Scope> <ExpirySettings> <TimeoutInSec>3600</TimeoutInSec> </ExpirySettings> <Source>token</Source> </PopulateCache>
בודקים אם המטמון (שנקבע בשלב #1) הוגדר בסביבה הספציפית (שזוהה בשלב #1).
בממשק המשתמש של Edge, עוברים אל ADMIN (אדמין) > Environment (סביבה) > test (בדיקה) ובודקים אם המטמון קיים בכרטיסייה Caches (מטמון) של Environment Configuration (הגדרת סביבה). אם המטמון לא קיים, זו הסיבה לשגיאה.
לדוגמה, יש לשים לב בצילום המסך שלמטה שהמטמון בשם
tokencache
לא קיים.מאחר שהמטמון בשם
tokencache
לא מוגדר בסביבהtest
, מתקבלת הודעת השגיאה:Invalid cache resource reference tokencache in Step definition PopulateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
רזולוציה
צריך לוודא שהמטמון שצוין ברכיב <CacheResource>
במדיניות PopulateCache נוצר בסביבה שבה רוצים לפרוס את שרת ה-proxy של ה-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
סיבה
השגיאה הזו מתרחשת אם המטמון הספציפי שמצוין בהודעת השגיאה לא נוצר ברכיב מסוים של מעבד ההודעות. מעבד הודעות הוא רכיב פנימי של Edge שמעבד את זרימת ה-API של Apigee Edge.
רזולוציה
אם אתם משתמשים בענן פרטי, עליכם לפעול לפי ההוראות הבאות:
פירוט הפריסות של שרת ה-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 כדי לקבל עזרה.