מדיניות ניקוי המטמון

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

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

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

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

הפניה לרכיב

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

<InvalidateCache async="false" continueOnError="false" enabled="true" name="policy-name">
    <DisplayName>Policy Name</DisplayName>
    <CacheKey>
        <Prefix>prefix_string</Prefix>
        <KeyFragment ref="variable_reference"/>
        <KeyFragment>fragment_string</KeyFragment>
    </CacheKey>
    <!-- Omit this element if you're using the included shared cache. -->
    <CacheResource>cache_to_use</CacheResource>
    <Scope>scope_enumeration</Scope>
    <CacheContext>
        <APIProxyName>application_that_added_the_entry</APIProxyName>
        <ProxyName>proxy_for_which_data_was_cached</ProxyName>
        <TargetName>endpoint_for_which_data_was_cached</TargetName>
    </CacheContext>
    <PurgeChildEntries>true_to_purge_all_child_entries</PurgeChildEntries>
</InvalidateCache>

מאפייני <InvalidateCache>

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

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

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

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

לא רלוונטי נדרש
continueOnError

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

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

false אופציונלי
enabled

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

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

true אופציונלי
async

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

false הוצא משימוש

רכיב <DisplayName>

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

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

לא רלוונטי

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

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

רכיב <CacheContext>/<APIProxyName>

מציינת את שם האפליקציה שהוסיפה את רשומת המטמון.

<APIProxyName>application_that_added_the_entry</APIProxyName>

מאפיינים

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

רכיב <CacheContext>

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

<CacheContext>
  <APIProxyName ref="variable_name">application_that_added_the_entry</APIProxyName>
  <TargetName ref="variable_name">endpoint_for_which_data_was_cached</TargetName>
  <ProxyName ref="variable_name">proxy_for_which_data_was_cached</ProxyName>
</CacheContext>

משמש לבניית CacheKey. הערכים של APIProxyName, ProxyName ו-TargetName נדרשים כאשר לא נעשה שימוש בקידומת CacheKey (כלומר, קידומת מותאמת אישית) כדי לנקות רשומות מטמון שנוספו על ידי שרת proxy אחר של API.

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

הרכיב <CacheResource>

ההגדרה הזאת קובעת את המטמון שבו ההודעות יאוחסנו.

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

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

מאפיינים

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

רכיב <CacheKey>/<Prefix>

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

<Prefix>prefix_string</Prefix>

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

מחרוזת

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

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

רכיב <CacheContext>/<ProxyName>

מציינת את שם שרת ה-proxy שעבורו הנתונים נשמרו.

<ProxyName>proxy_for_which_data_was_cached</ProxyName>

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

מחרוזת

מאפיינים

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

רכיב <PurgeChildEntries>

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

הערה: צריך לציין את הרכיב <KeyFragment>. אם הוא לא נכלל, הגדרת True עבור <PurgeChildEntries> עלולה לגרום למחיקה של כל הרשומות במטמון.

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

<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>

ברירת מחדל:

false

נוכחות:

אופציונלי

סוג:

בוליאני

רכיב <היקף>

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

Application

שם ה-proxy של ה-API משמש כקידומת.

מפתח המטמון מצורף בהתחלה בצורה orgName__envName__applicationName.

Proxy

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

מפתח המטמון מצורף מראש בצורה orgName__envName__applicationName__deployedRevisionNumber__proxyEndpointName .

Target

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

הוספנו מראש את מפתח המטמון בצורה הבאה: orgName__envName__applicationName__deployedRevisionNumber__targetEndpointName .

Exclusive

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

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

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

הוספנו מראש את מפתח המטמון לטופס orgName__envName__applicationName__deployedRevisionNumber__proxyNameITargetName

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

apifactory__test__weatherapi__16__default__apiAccessToken
.

הרכיב <CacheContext>/<TargetName>

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

<TargetName>endpoint_for_which_data_was_cached</TargetName>

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

מחרוזת

מאפיינים

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

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

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

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

קודי שגיאה

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

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

לא רלוונטי

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

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

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

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

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

משתני שבר

לא רלוונטי

דוגמה לשגיאה

לא רלוונטי