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

כאן רואים את התיעוד של 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>

מאפייני <InVerifyCache>

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

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

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

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

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

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

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

false אופציונלי
enabled

יש להגדיר את המדיניות true כדי לאכוף את המדיניות.

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

true אופציונלי
async

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

false הוצא משימוש

רכיב <DisplayName>

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

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

לא רלוונטי

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

נוכחות אופציונלי
Type String

רכיב <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>

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

String

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

רכיב <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>

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

String

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

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

רכיב <cacheContext>/<ProxyName>

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

<ProxyName>proxy_for_which_data_was_cached</ProxyName>

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

String

מאפיינים

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

הרכיב <PurgeChildEntries>

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

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

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

<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>

ברירת מחדל:

false

נוכחות:

אופציונלי

סוג:

Boolean

רכיב <היקף>

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

<Scope>scope_enumeration</Scope>

ברירת מחדל:

'בלעדי'

נוכחות:

אופציונלי

סוג:

String

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

orgName__envName__applicationName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ].

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

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

ערכים קבילים

ערך ההיקף תיאור
Global

מפתח המטמון משותף לכל שרתי ה-API של ה-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>

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

String

מאפיינים

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

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

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

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

קודי שגיאה

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

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

לא רלוונטי

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

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

שגיאות פריסה

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

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

משתני כשל

לא רלוונטי

דוגמה לשגיאה

לא רלוונטי