המדיניות בנושא תגובות במטמון

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

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

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

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

כדאי לצפות בסרטון הזה למבוא למדיניות 'מטמון תגובה'.

דוגמאות

מטמון ל-10 דקות

הדוגמה הזו מראה איך אפשר לשמור תגובות במטמון 10 דקות.

נניח שיש לכם API בכתובת ה-URL הבאה:

http://{org_name}-test.apigee.net/weather/forecastrss?w=23424778

אתם משתמשים בפרמטר השאילתה w כמפתח מטמון. Apigee Edge בודק את של פרמטר השאילתה w בכל פעם שמתקבלת בקשה. אם הערך תקין ( קיימת במטמון, הודעת תגובה שנשמרה במטמון הוחזרו ללקוח ששלח את הבקשה.

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

<ResponseCache name="ResponseCache">
    <CacheKey>
        <KeyFragment ref="request.queryparam.w" />
    </CacheKey>
    <ExpirySettings>
        <TimeoutInSeconds>600</TimeoutInSeconds>
    </ExpirySettings>
</ResponseCache>

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

http://{org_name}-test.apigee.net/weather/forecastrss?w=23424778

דילוג על חיפוש במטמון

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

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

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

לדוגמה, נניח קריאה ל-API בכתובת ה-URL הבאה:

'http://{org_name}-test.apigee.net/weather/forecastrss?w=23424778' -H "bypass-cache:true"

עכשיו נבחן את מדיניות ResponseCache הבאה שמוגדרת בשרת ה-proxy הזה. שימו לב התנאי למעקף של המטמון מוגדר כ-True.

<ResponseCache name="ResponseCache">
    <CacheKey>
        <KeyFragment ref="request.queryparam.w" />
    </CacheKey>
    <!-- Explicitly refresh the cached response -->
    <SkipCacheLookup>request.header.bypass-cache = "true"</SkipCacheLookup>
    <ExpirySettings>
        <TimeoutInSeconds>600</TimeoutInSeconds>
    </ExpirySettings>
</ResponseCache>

למידע נוסף על תנאים, ראו משתני זרימה וגם תנאים.

הפניה לרכיב

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

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">
    <DisplayName>Response Cache 1</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref="request.uri" />
    </CacheKey>
    <Scope>Exclusive</Scope>
    <ExpirySettings>
        <ExpiryDate/>
        <TimeOfDay/>
        <TimeoutInSeconds ref="flow.variable.here">300</TimeoutInSeconds>
    </ExpirySettings>
    <CacheResource>cache_to_use</CacheResource>
    <CacheLookupTimeoutInSeconds/>
    <ExcludeErrorResponse/>
    <SkipCacheLookup/>
    <SkipCachePopulation/>
    <UseAcceptHeader/>
    <UseResponseCacheHeaders/>
</ResponseCache>

&lt;ResponseCache&gt; מאפיינים

<ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">

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

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

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

&lt;CacheKey&gt; רכיב

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

הגודל של מפתחות המטמון מוגבל ל-2KB.

<CacheKey>
    <Prefix>string</Prefix>
    <KeyFragment ref="variable_name" />
    <KeyFragment>literal_string</KeyFragment>
</CacheKey>

ברירת המחדל:

לא רלוונטי

נוכחות:

חובה

סוג:

לא רלוונטי

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

בזמן הריצה, הערכים של <KeyFragment> מתווספים לפני או עם התו ערך רכיב <Scope> או ערך <Prefix>. לדוגמה, התוצאות הבאות מניבות מפתח מטמון של UserToken__apiAccessToken__&lt;value_of_client_id&gt;:

<CacheKey>
    <Prefix>UserToken</Prefix>
    <KeyFragment>apiAccessToken</KeyFragment>
    <KeyFragment ref="request.queryparam.client_id" />
</CacheKey>

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

&lt;CacheLookupTimeoutInSeconds&gt; רכיב

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

<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>

ברירת המחדל:

30

נוכחות:

אופציונלי

סוג:

מספר שלם

&lt;CacheResource&gt; רכיב

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

<CacheResource>cache_to_use</CacheResource>

ברירת המחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

מחרוזת

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

&lt;CacheKey&gt;/&lt;KeyFragment&gt; רכיב

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

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

ברירת המחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

לא רלוונטי

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

<KeyFragment>apiAccessToken</KeyFragment>
<KeyFragment ref="request.queryparam.client_id" />

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

מאפיינים

מאפיין סוג ברירת מחדל חובה תיאור
אזכור מחרוזת לא

המשתנה שממנו יש לקבל את הערך. אין להשתמש בו אם הרכיב הזה מכיל ערך מילולי.

&lt;CacheKey&gt;/&lt;Prefix&gt; רכיב

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

<Prefix>prefix_string</Prefix>

ברירת המחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

מחרוזת

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

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

&lt;ExcludeErrorResponse&gt; רכיב

בשלב הזה, המדיניות הזו שומרת במטמון תגובות HTTP בכל האפשרויות הקיימות כברירת מחדל. קוד סטטוס. פירוש הדבר הוא שגם תגובות להצלחה וגם לשגיאות נשמרות במטמון. לדוגמה, תשובות עם קודי סטטוס 2xx ו-3xx נשמרים במטמון כברירת מחדל.

צריך להגדיר את הרכיב הזה ל-true אם לא רוצים לשמור את היעד במטמון תגובות עם קודי מצב של שגיאות HTTP; רק תשובות עם קודי סטטוס בין 200 ל-205 שנשמר במטמון אם הרכיב הזה הוא True. אלה קודי המצב היחידים של HTTP ש-Edge נספר בתור "הצלחה" קודים, ולא ניתן לשנות את השיוך הזה.

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

הערה: בגרסה עתידית (כפי שיקבע), הגדרת ברירת המחדל הזאת ישתנה ל-true. ראו Apigee נתוני גרסה לפרטים נוספים.

<ExcludeErrorResponse>true</ExcludeErrorResponse>

ברירת המחדל:

false

נוכחות:

אופציונלי

סוג:

ערך בוליאני

&lt;ExpirySettings&gt; רכיב

מציינת מתי יפוג התוקף של רשומת מטמון. כשהוא קיים, <TimeoutInSeconds> הוא מבטל גם את <TimeOfDay> וגם את <ExpiryDate>.

<ExpirySettings>
  <TimeOfDay ref="time_variable">expiration_time</TimeOfDay>
  <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds>
  <ExpiryDate ref="date_variable">expiration_date</ExpiryDate>
</ExpirySettings>

ברירת המחדל:

לא רלוונטי

נוכחות:

חובה

סוג:

לא רלוונטי

&lt;ExpirySettings&gt;/&lt;ExpiryDate&gt; רכיב

מציינת את התאריך שבו יפוג תוקף רשומת מטמון. משתמשים בטופס mm-dd-yyyy. כשהוא קיים, סטטוס האחות של הרכיב הזה, <TimeoutInSeconds>, מבטל את ברירת המחדל <ExpiryDate>.

<ExpirySettings>
    <ExpiryDate ref="{date_variable}">expiration_date</ExpiryDate>
</ExpirySettings>

ברירת המחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

מחרוזת

מאפיינים

<ExpiryDate ref="" />
מאפיין תיאור ברירת מחדל נוכחות סוג
אזכור

המשתנה שממנו יש לקבל את הערך. אין להשתמש בו אם הרכיב הזה מכיל ערך מילולי.

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

&lt;ExpirySettings&gt;/&lt;TimeOfDay&gt; רכיב

השעה ביום שבה פג התוקף של רשומת מטמון. צריך להשתמש בטופס hh:mm:ss . כשהוא קיים, סטטוס האחות של הרכיב הזה, <TimeoutInSeconds>, מבטל את ברירת המחדל <TimeOfDay>.

יש להזין את השעה בפורמט HH:mm:ss, שבו HH מייצג את השעה בשעון של 24 שעות. עבור לדוגמה, 14:30:00 למשך 2:30 אחר הצהריים.

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

<ExpirySettings>
    <TimeOfDay ref="time_variable">expiration_time</TimeOfDay>
</ExpirySettings>

ברירת המחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

מחרוזת

מאפיינים

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

&lt;ExpirySettings&gt;/&lt;TimeoutInSec&gt; רכיב

מספר השניות שאחריהן צריכה להופיע רשומת מטמון.

&lt;ExpirySettings&gt;/&lt;TimeoutInSeconds&gt; רכיב

מספר השניות שאחריהן צריכה להופיע רשומת מטמון. כשהרכיב הזה קיים, מבטלת את אחיות האחיות <TimeOfDay> ו-<ExpiryDate>.

<ExpirySettings>
    <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds>
</ExpirySettings>

הערה: צריך לציין ערך ברירת מחדל לזמן קצוב לתפוגה אם ה-ref לא מקבל ערך duration_variable.

ברירת המחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

מחרוזת

מאפיינים

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

&lt;Scope&gt; רכיב

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

<Scope>scope_enumeration</Scope>

ברירת המחדל:

"בלעדי"

נוכחות:

אופציונלי

סוג:

מחרוזת

ההגדרה <Scope> קובעת מפתח מטמון שמחובר מראש בהתאם את הערך <Scope>. לדוגמה, מפתח מטמון יופיע בצורה הבאה, ההיקף מוגדר ל-Exclusive : orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ].

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

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

ערכים קבילים

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

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

אם מגדירים רשומת <CacheKey> עם המאפיין apiAccessToken <KeyFragment> והיקף של <Global>, כל רשומה נשמרת בתור orgName__envName__apiAccessToken, ואחריה מופיע הערך הסידורי של אסימון הגישה. לשרת proxy ל-API שנפרס בסביבה שנקראת 'בדיקה' בארגון שנקרא 'api עליו', אסימוני הגישה יאוחסנו מפתח המטמון הבא: apifactory__test__apiAccessToken.

Application

השם של שרת ה-proxy ל-API משמש כתחילית.

מפתח המטמון מופיע בהתחלה בפורמט orgName__envName__apiProxyName.

Proxy

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

מפתח המטמון מופיע בתחילת הטופס orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName .

Target

ההגדרה של נקודת הקצה של יעד משמשת כקידומת.

מפתח המטמון מופיע בתחילת הטופס orgName__envName__apiProxyName__deployedRevisionNumber__targetEndpointName .

Exclusive

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

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

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

מפתח המטמון מופיע בתחילת הטופס orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName

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

apifactory__test__weatherapi__16__default__apiAccessToken
.

&lt;SkipCacheLookup&gt; רכיב

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

<SkipCacheLookup>variable_condition_expression</SkipCacheLookup>

ברירת המחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

מחרוזת

מהדוגמה הבאה, אם המשתנה override-cache מוגדר כ-True בכותרת נכנסת, המערכת מדלגת על חיפוש המטמון ומתבצע רענון של המטמון.

<SkipCacheLookup>request.header.bypass-cache = "true"</SkipCacheLookup>

&lt;SkipCachePopulation&gt; רכיב

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

<SkipCachePopulation>variable_condition_expression</SkipCachePopulation>

ברירת המחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

מחרוזת

לדוגמה, הפקודה הבאה תדלג על הכתיבה במטמון אם קוד הסטטוס של התשובה היה 400 או גבוהה יותר:

<SkipCachePopulation>response.status.code >= 400</SkipCachePopulation>

&lt;UseAcceptHeader&gt; רכיב

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

Edge משתמש בתכונות Accept, Accept-Encoding, Accept-Language ו-Accept-Charset כותרות בקשה בעת חישוב מפתח המטמון. בגישה הזאת מונע מלקוח לקבל סוג מדיה שהוא לא ביקש.

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

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

<UseAcceptHeader>false</UseAcceptHeader>

ברירת המחדל:

false

נוכחות:

אופציונלי

סוג:

ערך בוליאני

&lt;UseResponseCacheHeaders&gt; רכיב

יש להגדיר את הערך true כדי שהכותרות של תגובת HTTP ייכללו בעת הגדרת הערך של 'time to פעילה" (TTL) של התגובה במטמון. אם זה נכון, Edge מתייחס לערכים של בכותרות התגובה הבאות, תוך השוואה בין הערכים לערכים שהוגדרו על ידי <ExpirySettings> כשמגדירים את משך החיים:

  • Cache-Control s-maxage
  • Cache-Control max-age
  • Expires

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

<UseResponseCacheHeaders>false</UseResponseCacheHeaders>

ברירת המחדל:

false

נוכחות:

אופציונלי

סוג:

ערך בוליאני

הערות שימוש

הגודל המקסימלי של כל אובייקט שנשמר במטמון הוא 256KB. (למידע מפורט על אופן השימוש ב-Edge מעבדי מטמון, ראו מטמון פנימיים.)

באמצעות ההגדרה במדיניות ResponseCache, ניתן להגדיר ש-Edge יכלול תגובת HTTP 'כותרות' בהגדרת מפתחות התפוגה של רשומת המטמון ומפתחות המטמון. בקטע הזה מופיע תיאור של מדיניות עם כותרות לניהול תפוגת תוקף של מטמון ומפתחות של מטמון.

למידע נוסף על האופן שבו Edge מטפל בכותרות תגובה באמצעות המדיניות ResponseCache, ראו תמיכה בכותרות תגובת HTTP.

הגדרת תפוגה של רשומת מטמון

בדומה לאכלוס מדיניות המטמון, אפשר להגדיר את תאריך התפוגה של רשומה במטמון התגובה (משך החיים שלה) באמצעות רכיב <ExpirySettings>. במדיניות של ResponseCache, אפשר גם להשתמש ב-Edge כדאי להביא בחשבון את כותרות התגובות כשהן קיימות.

כדי להשתמש בכותרות תגובה, צריך להגדיר את ערך הרכיב <UseResponseCacheHeaders> כ- נכון. ההגדרה הזו גורמת ל-Edge לבדוק את כותרות התגובות ולהשוות אותן לערך שהוגדר עד <ExpirySettings>, ולאחר מכן להשתמש בערך הנמוך ביותר בין השניים. מתי בהתאם לכותרות התגובה, Edge בוחר את הערך הזמין כפי שמתואר הבאים:

לדוגמה, נניח שתגובה מסוימת נשמרת במטמון עם הערכים הבאים:

  • אין ערך Cache-Control s-maxage
  • ערך Cache-Control max-age של 300
  • תאריך של Expires בעוד שלושה ימים
  • ערך <ExpirySettings> TimeoutInSeconds של 600.

במקרה הזה, הערך Cache-Control max-age ישמש בשביל TTL כי הוא נמוך מהערך של <ExpirySettings>, ובגלל שהוא אין ערך Cache-Control s-maxage (שמקבל עדיפות על פני max-age).

הגדרה של מפתח מטמון

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

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

מידע על הצפנת המטמון

שוליים לענן ציבורי: המטמון מוצפן רק ב- PCI– וגם HIPAA ארגונים. ההצפנה של הארגונים האלה מוגדרת במהלך הארגון הקצאה.

משתני זרימה

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

משתנים סוג הרשאה תיאור
responsecache.{policy_name}.cachename מחרוזת הרשאת קריאה בלבד החזרת המטמון שנעשה בו שימוש במדיניות
responsecache.{policy_name}.cachekey מחרוזת הרשאת קריאה בלבד החזרת המפתח שבו נעשה שימוש
responsecache.{policy_name}.cachehit ערך בוליאני הרשאת קריאה בלבד הערך הוא True אם הפעלת המדיניות בוצעה בהצלחה
responsecache.{policy_name}.invalidentry ערך בוליאני הרשאת קריאה בלבד True אם רשומת המטמון לא חוקית

קודי שגיאה

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

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

לא רלוונטי

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

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

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

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

שם השגיאה סיבה תיקון
InvalidTimeout אם הרכיב <CacheLookupTimeoutInSeconds> במדיניות ResponseCache מוגדר למספר שלילי, הפריסה של שרת ה-proxy של ה-API תיכשל.
InvalidCacheResourceReference השגיאה הזו מתרחשת אם הרכיב <CacheResource> במדיניות של ResponseCache מוגדר לשם שלא קיים בסביבה שבה נפרס שרת ה-proxy של ה-API.
ResponseCacheStepAttachmentNotAllowedReq השגיאה הזו מתרחשת אם אותה מדיניות ResponseCache מצורפת לכמה נתיבי בקשות בתוך זרימות של שרת proxy ל-API.
ResponseCacheStepAttachmentNotAllowedResp השגיאה הזו מתרחשת אם אותה מדיניות ResponseCache מצורפת לכמה נתיבי תגובה בתוך זרימות כלשהן של שרת proxy ל-API.
InvalidMessagePatternForErrorCode השגיאה הזו מתרחשת אם הרכיב <SkipCacheLookup> או הרכיב <SkipCachePopulation> במדיניות ResponseCache מכילים תנאי לא חוקי.
CacheNotFound השגיאה הזו מתרחשת אם המטמון הספציפי שצוין בהודעת השגיאה לא נוצר ברכיב מסוים של מעבד ההודעות.

משתני שבר

לא רלוונטי

דוגמה לשגיאה

לא רלוונטי

סכימה

כל סוג מדיניות מוגדר על ידי סכימת XML (.xsd). לידיעתך, סכימות של מדיניות זמינים ב-GitHub.