המדיניות של LookupCache

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

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

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

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

הפניה לרכיב

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

<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> בהגדרת המדיניות הזו.

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

&lt;LookupCache&gt; מאפיינים

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

מאפיין תיאור ברירת מחדל נוכחות
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 של המדיניות הוא בשימוש.

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

&lt;AssignTo&gt; רכיב

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

<AssignTo>variable_to_receive_cached_value</AssignTo>

ברירת המחדל:

לא רלוונטי

נוכחות:

חובה

סוג:

מחרוזת

&lt;CacheKey&gt; רכיב

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

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

ברירת המחדל:

לא רלוונטי

נוכחות:

חובה

סוג:

לא רלוונטי

<CacheKey> בונה את השם של כל פיסת נתונים המאוחסן של Google.

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

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

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

&lt;CacheLookupTimeoutInSeconds&gt; רכיב

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

<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>

ברירת המחדל:

30

נוכחות:

אופציונלי

סוג:

מספר שלם

&lt;CacheResource&gt; רכיב

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

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

<CacheResource>cache_to_use</CacheResource>

ברירת המחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

מחרוזת

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

&lt;CacheKey&gt;/&lt;KeyFragment&gt; רכיב

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

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

ברירת המחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

לא רלוונטי

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

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

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

מאפיינים

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

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

&lt;CacheKey&gt;/&lt;Prefix&gt; רכיב

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

<Prefix>prefix_string</Prefix>

ברירת המחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

מחרוזת

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

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

&lt;Scope&gt; רכיב

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

<Scope>scope_enumeration</Scope>

ברירת המחדל:

"בלעדי"

נוכחות:

אופציונלי

סוג:

מחרוזת

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

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

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

ערכים קבילים

Global

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

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

Application

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

מפתח המטמון מופיע בתחילת הטופס orgName__envName__applicationName.

Proxy

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

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

Target

ההגדרה של נקודת הקצה של יעד משמשת כקידומת.

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

Exclusive

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

הקידומת היא אחת משתי צורות:

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

מפתח המטמון מופיע בתחילת הטופס orgName__envName__applicationName__deployedRevisionNumber__proxyNameITargetName

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

apifactory__test__weatherapi__16__default__apiAccessToken
.

הערות שימוש

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

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

משתני שבר

לא רלוונטי

דוגמה לשגיאה

לא רלוונטי