המדיניות InvalidateCache

מדיניות ניתנת להרחבה

הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.

לעיון במסמכי התיעוד של Apigee Edge

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

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

למידע על שמירת תגובות של משאבי בק-אנד במטמון, אפשר לעיין במאמר בנושא מדיניות ResponseCache.

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

הפניה לרכיב

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

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

לא רלוונטי חובה
continueOnError

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

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

FALSE אופציונלי
enabled

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

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

TRUE אופציונלי
async

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

FALSE הוצא משימוש

אלמנט <DisplayName>

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

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

לא רלוונטי

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

נוכחות אופציונלי
סוג String

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

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

String

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

אלמנט <CacheKey>/<KeyFragment>

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

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

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

לא רלוונטי

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

מאפיינים

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

אלמנט <CacheKey>/<Prefix>

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

<Prefix>prefix_string</Prefix>

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

String

רכיב <Prefix> מבטל את ההגדרה של כל רכיב <Scope>.

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

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

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

<ProxyName>proxy_for_which_data_was_cached</ProxyName>

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

String

מאפיינים

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

אלמנט <PurgeChildEntries>

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

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

<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>

ברירת מחדל:

FALSE

נוכחות:

אופציונלי

סוג:

בוליאני

אלמנט <Scope>

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

<Scope>scope_enumeration</Scope>

ברירת מחדל:

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

נוכחות:

אופציונלי

סוג:

String

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

orgName__envName__applicationName__proxy|TargetName__ [ serializedCacheKey ].

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

מידע נוסף זמין במאמר עבודה עם מפתחות מטמון.

ערכים קבילים

ערך ההיקף תיאור
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__proxyEndpointName .

Target

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

מפתח המטמון מופיע בתחילת השורה בפורמט הבא: orgName__envName__applicationName__targetEndpointName .

Exclusive

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

התחילית יכולה להיות אחת משתי צורות:

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

מפתח המטמון מופיע בתחילת השורה בפורמט orgName__envName__applicationName__proxyNameITargetName

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

apifactory__test__weatherapi__default__apiAccessToken
.

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

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

<TargetName>endpoint_for_which_data_was_cached</TargetName>

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

String

מאפיינים

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

הערות שימוש

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

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

קודי שגיאה

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

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

לא רלוונטי

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

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

שגיאות פריסה

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

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

משתני תקלות

לא רלוונטי

דוגמה לתגובת שגיאה

לא רלוונטי