המדיניות של 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>

The following table describes attributes that are common to all policy parent elements:

Attribute Description Default Presence
name

The internal name of the policy. The value of the name attribute can contain letters, numbers, spaces, hyphens, underscores, and periods. This value cannot exceed 255 characters.

Optionally, use the <DisplayName> element to label the policy in the management UI proxy editor with a different, natural-language name.

N/A Required
continueOnError

Set to false to return an error when a policy fails. This is expected behavior for most policies.

Set to true to have flow execution continue even after a policy fails.

false Optional
enabled

Set to true to enforce the policy.

Set to false to turn off the policy. The policy will not be enforced even if it remains attached to a flow.

true Optional
async

This attribute is deprecated.

false Deprecated

<DisplayName> element

Use in addition to the name attribute to label the policy in the management UI proxy editor with a different, natural-language name.

<DisplayName>Policy Display Name</DisplayName>
Default

N/A

If you omit this element, the value of the policy's name attribute is used.

Presence Optional
Type String

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

משתני שבר

לא רלוונטי

דוגמה לשגיאה

לא רלוונטי