המדיניות InvalidateCache

אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X.
מידע

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

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

מידע על שמירת תשובות של משאבי backend במטמון זמין במאמר בנושא מדיניות שמירת תשובות במטמון.

הפניה לרכיב

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

<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 הוצא משימוש

&lt;DisplayName&gt; רכיב

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

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

לא רלוונטי

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

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

אלמנט <CacheContext>/<APIProxyName>

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

<APIProxyName>application_that_added_the_entry</APIProxyName>

מאפיינים

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

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

מאפיינים

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

אלמנט <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>

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

מחרוזת

מאפיינים

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

רכיב <PurgeChildEntries>

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

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

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

<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>

ברירת מחדל:

false

נוכחות:

אופציונלי

סוג:

בוליאני

אלמנט <Scope>

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

<Scope>scope_enumeration</Scope>

ברירת מחדל:

‫"Exclusive"‏ (בלעדי)

נוכחות:

אופציונלי

סוג:

מחרוזת

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

orgName__envName__applicationName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ].

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

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

ערכים קבילים

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

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

אם מגדירים רשומה של <CacheKey> עם <KeyFragment> apiAccessToken ועם <Global> scope, כל רשומה מאוחסנת כ-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>

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

<TargetName>endpoint_for_which_data_was_cached</TargetName>

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

מחרוזת

מאפיינים

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

הערות שימוש

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

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

קודי שגיאה

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

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

לא רלוונטי

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

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

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

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

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

משתני שבר

לא רלוונטי

דוגמה לשגיאה

לא רלוונטי