המדיניות של LookupCache

אתם צופים במסמכי העזרה של Apigee Edge.
כניסה למסמכי העזרה של Apigee X.
info

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

המדיניות הזו מיועדת לשימוש במטמון לטווח קצר למטרות כלליות. הוא משמש בשילוב עם מדיניות האכלוס של המטמון (לכתיבת רשומות) ועם מדיניות ביטול התוקף של המטמון (לביטול התוקף של רשומות).

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

הפניה לרכיב

בהמשך מפורטים הרכיבים שאפשר להגדיר במדיניות הזו.

<LookupCache async="false" continueOnError="false" enabled="true" name="Lookup-Cache-1">
    <DisplayName>Lookup Cache 1</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref=""/>
    </CacheKey>
    <!-- Omit this element if you're using the included shared cache. -->
    <CacheResource/>
    <CacheLookupTimeoutInSeconds/>
    <Scope>Exclusive</Scope>
    <AssignTo>flowVar</AssignTo>
</LookupCache>

מטמון משותף כלול כברירת מחדל. כדי להשתמש במטמון המשותף, צריך להשמיט את הרכיב <CacheResource> בהגדרת המדיניות הזו.

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

מאפייני <LookupCache>

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

מאפיין תיאור ברירת מחדל נוכחות
name

השם הפנימי של המדיניות. הערך של המאפיין name יכול לכלול אותיות, מספרים, רווחים, מקפים, קווים תחתונים ונקודות. הערך הזה לא יכול ארוך מ-255 תווים.

אפשר להשתמש ברכיב <DisplayName> כדי להוסיף תווית למדיניות עורך ה-Proxy של ממשק המשתמש לניהול בעל שם אחר בשפה טבעית.

לא רלוונטי חובה
continueOnError

צריך להגדיר את הערך false כדי להחזיר שגיאה כשמדיניות נכשלת. המצב הזה צפוי של רוב כללי המדיניות.

יש להגדיר ל-true כדי שביצוע התהליך יימשך גם לאחר המדיניות נכשל.

false אופציונלי
enabled

צריך להגדיר את הערך true כדי לאכוף את המדיניות.

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

true אופציונלי
async

המאפיין הזה הוצא משימוש.

false הוצא משימוש

&lt;DisplayName&gt; רכיב

צריך להשתמש בנוסף למאפיין name כדי להוסיף תווית למדיניות עורך proxy של ממשק משתמש לניהול עם שם אחר בשפה טבעית.

<DisplayName>Policy Display Name</DisplayName>
ברירת מחדל

לא רלוונטי

אם משמיטים את הרכיב הזה, הערך של המאפיין name של המדיניות הוא בשימוש.

נוכחות אופציונלי
סוג מחרוזת

אלמנט <AssignTo>

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

<AssignTo>variable_to_receive_cached_value</AssignTo>

ברירת מחדל:

לא רלוונטי

נוכחות:

חובה

סוג:

מחרוזת

האלמנט <CacheKey>

הגדרת מצביע ייחודי לחלק מנתונים שנשמרים במטמון.

<CacheKey>
    <Prefix>string</Prefix>
    <KeyFragment ref="variable_name" />
    <KeyFragment>literal_string</KeyFragment>
</CacheKey>

ברירת מחדל:

לא רלוונטי

נוכחות:

חובה

סוג:

לא רלוונטי

<CacheKey> יוצר את השם של כל קבוצת נתונים שמאוחסנת במטמון.

בזמן הריצה, הערכים של <KeyFragment> מתווספים בתחילת הערך של הרכיב <Scope> או הערך של <Prefix>. לדוגמה, הביטוי הבא יגרום ליצירת מפתח מטמון בשם UserToken__apiAccessToken__<value_of_client_id>:

<CacheKey>
    <Prefix>UserToken</Prefix>
    <KeyFragment>apiAccessToken</KeyFragment>
    <KeyFragment ref="request.queryparam.client_id" />
</CacheKey>

משתמשים ברכיב <CacheKey> בשילוב עם <Prefix> ו-<Scope>. מידע נוסף זמין במאמר עבודה עם מפתחות מטמון.

האלמנט <CacheLookupTimeoutInSeconds>

קובע את מספר השניות שאחריהן חיפוש לא מוצלח במטמון ייחשב כחוסר הימצאות במטמון. במקרה כזה, התהליך ימשיך לאורך הנתיב של חוסר הימצאות במטמון.

<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>

ברירת מחדל:

30

נוכחות:

אופציונלי

סוג:

מספר שלם

האלמנט<CacheResource>

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

מומלץ להשמיט את האלמנט הזה לגמרי אם המדיניות הזו (והמדיניות התואמת של PopulateCache ו-InvalidateCache) משתמשות במטמון המשותף הכלול.

<CacheResource>cache_to_use</CacheResource>

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

מחרוזת

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

אלמנט <CacheKey>/<KeyFragment>

הערך שצריך לכלול במפתח המטמון, כדי ליצור מרחב שמות להתאמת בקשות לתשובות שנשמרו במטמון.

<KeyFragment ref="variable_name"/>
<KeyFragment>literal_string</KeyFragment>

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

לא רלוונטי

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

<KeyFragment>apiAccessToken</KeyFragment>
<KeyFragment ref="request.queryparam.client_id" />

משתמשים ברכיב <KeyFragment> בשילוב עם <Prefix> ו-<Scope>. מידע נוסף זמין במאמר עבודה עם מפתחות מטמון.

מאפיינים

מאפיין סוג ברירת מחדל חובה תיאור
ref מחרוזת לא

המשתנה שממנו רוצים לקבל את הערך. לא צריך להשתמש בו אם האלמנט מכיל ערך מילולי.

אלמנט <CacheKey>/<Prefix>

הערך שצוין ישמש כקידומת של מפתח מטמון.

<Prefix>prefix_string</Prefix>

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

מחרוזת

משתמשים בערך הזה במקום ב-<Scope> כשרוצים לציין ערך משלכם במקום ערך ממוספר של <Scope>. אם הערך מוגדר, הוא מצורף לתחילת הערך של מפתח המטמון של הרשומות שנכתבות במטמון.<Prefix> ערך של רכיב <Prefix> מבטל ערך של רכיב <Scope>.

משתמשים ברכיב <Prefix> בשילוב עם <CacheKey> ו-<Scope>. מידע נוסף זמין במאמר עבודה עם מפתחות מטמון.

האלמנט <Scope>

ספירה שמשמשת ליצירת קידומת למפתח מטמון כשלא צוין רכיב <Prefix> ברכיב <CacheKey>.

<Scope>scope_enumeration</Scope>

ברירת מחדל:

'בלעדי'

נוכחות:

אופציונלי

סוג:

מחרוזת

ההגדרה <Scope> קובעת מפתח מטמון שמצורף לתחילת השם בהתאם לערך <Scope>. לדוגמה, מפתח מטמון יהיה בפורמט הבא כשהיקף מוגדר כ-Exclusive:‏ orgName__envName__applicationName__proxy|TargetName__‏ [ serializedCacheKey ].

אם רכיב <Prefix> נמצא ב-<CacheKey>, הוא מחליף את הערך של רכיב <Scope>. הערכים החוקיים כוללים את המניינים הבאים.

משתמשים ברכיב <Scope> בשילוב עם <CacheKey> ו-<Prefix>. מידע נוסף זמין במאמר עבודה עם מפתחות מטמון.

ערכים קבילים

Global

מפתח המטמון משותף לכל שרת ה-proxy של ה-API שנפרס בסביבה. מפתח המטמון מופיע בתחילת השם בפורמט orgName __ envName __.

אם מגדירים רשומה <CacheKey> עם <KeyFragment> apiAccessToken והיקף <Global>, כל רשומה מאוחסנת כ-orgName__envName__apiAccessToken, ואחריה הערך המסודר של אסימון הגישה. בשרת proxy ל-API שנפרס בסביבה שנקראת 'test' בארגון שנקרא 'apifactory', אסימוני הגישה יישמרו במפתח המטמון הבא: apifactory__test__apiAccessToken.

Application

שם שרת ה-proxy של ה-API משמש כתחילית.

מפתח המטמון מופיע בתחילת השם בפורמט orgName__envName__applicationName.

Proxy

תצורת ProxyEndpoint משמשת כקידומת.

מפתח המטמון מופיע בתחילת השם בפורמט orgName__envName__applicationName__proxyEndpointName .

Target

ההגדרה של TargetEndpoint משמשת כקידומת.

מפתח מטמון שמתחיל בפורמט orgName__envName__applicationName__targetEndpointName .

Exclusive

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

התחילית יכולה להיות באחת משתי צורות:

  • אם המדיניות מצורפת לתהליך ProxyEndpoint, התחילית היא בפורמט ApiProxyName_ProxyEndpointName.
  • אם המדיניות מצורפת ב-TargetEndpoint, הקידומת היא מהפורמט ApiProxyName_TargetName.

מפתח מטמון שמופיע בתחילת הפורמט: orgName__envName__applicationName__proxyNameITargetName

לדוגמה, המחרוזת המלאה עשויה להיראות כך:

apifactory__test__weatherapi__16__default__apiAccessToken
.

הערות לגבי שימוש

המדיניות הזו מתאימה לשמירה במטמון למטרות כלליות. בזמן הריצה, המדיניות LookupCache מאחזרת ערך מהמטמון ומקצה את הערך למשתנה שציינתם באמצעות הרכיב AssignTo (אם לא מאוחזר ערך, המשתנה לא יוגדר). הוא מחפש את הערך על סמך מפתח מטמון שנוצר באמצעות הגדרה שמשלבת את הרכיבים CacheKey ו-Scope. במילים אחרות, כדי לאחזר ערך מסוים שנוסף למטמון על ידי מדיניות PopulateCache, במדיניות LookupCache צריכים להיות מוגדרים רכיבים שקשורים למפתחות מטמון באותו אופן שבו הם מוגדרים במדיניות PopulateCache.

שמירת מטמון למטרות כלליות באמצעות מדיניות Populate Cache, מדיניות LookupCache ומדיניות InvalidateCache משתמשת במטמון שאתם מגדירים או במטמון משותף שכלול כברירת מחדל. ברוב המקרים, המטמון המשותף הבסיסי יענה על הצרכים שלכם. כדי להשתמש במטמון ברירת המחדל, פשוט משמיטים את הרכיב <CacheResource>.

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

משתני זרימה

אפשר להשתמש במשתני תהליך כדי להגדיר התנהגות דינמית בסביבת זמן הריצה של כללי מדיניות ותהליכים, על סמך כותרות HTTP או תוכן ההודעה, או על סמך ההקשר שזמין בתהליך. למידע נוסף על משתני תהליך, ראו חומר עזר בנושא משתנים.

משתני ה-Flow המוגדרים מראש הבאים זמינים אחרי שתתאימו אישית את ההתנהגות של המטמון שתגדירו במדיניות LookupCache.

משתנים סוג הרשאה תיאור
lookupcache.{policy-name}.cachename מחרוזת הרשאת קריאה בלבד הפונקציה מחזירה את שם המטמון שמשמש במדיניות.
lookupcache.{policy-name}.cachekey מחרוזת הרשאת קריאה בלבד הפונקציה מחזירה את המפתח שבו נעשה שימוש.
lookupcache.{policy-name}.cachehit בוליאני הרשאת קריאה בלבד הערך True מוחזר אם המדיניות מצאה ערך למפתח המטמון שצוין.
lookupcache.{policy-name}.assignto מחרוזת הרשאת קריאה בלבד הפונקציה מחזירה את המשתנה שאליו המטמון הוקצה.

קודי שגיאה

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

קידומת קוד שגיאה

לא רלוונטי

שגיאות בזמן ריצה

המדיניות הזו לא גורמת לשגיאות זמן ריצה.

שגיאות בפריסה

השגיאות האלה יכולות להתרחש כשפורסים שרת proxy שכולל את המדיניות הזו.

שם השגיאה סיבה תיקון
InvalidCacheResourceReference השגיאה הזו מתרחשת אם לרכיב <CacheResource> מוגדר שם שלא קיים בסביבה שבה נפרס שרת ה-proxy של ה-API.
InvalidTimeout אם הרכיב <CacheLookupTimeoutInSeconds> מוגדר כמספר שלילי, הפריסה של שרת ה-proxy של ה-API תיכשל.
CacheNotFound השגיאה הזו מתרחשת אם המטמון הספציפי שצוין בהודעת השגיאה לא נוצר ברכיב מסוים של מעבד ההודעות.

משתני שבר

לא רלוונטי

דוגמה לשגיאה

לא רלוונטי