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

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

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

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

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

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

דוגמאות

מטמון של 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>

בפעם הראשונה ששרת ה-API של ה-API מקבל הודעת בקשה לכתובת ה-URL הבאה, התגובה נשמרת במטמון. בבקשה השנייה תוך 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>

מאפייני <ResponseCache>

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

רכיב <DisplayName>

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

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

לא רלוונטי

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

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

רכיב <CacheKey>

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

מפתחות מטמון מוגבלים לגודל של 2KB.

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

ברירת מחדל:

לא רלוונטי

נוכחות:

חובה

סוג:

לא רלוונטי

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

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

האלמנט <CacheLookupTimeoutInSeconds>

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

<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>

ברירת מחדל:

30

נוכחות:

אופציונלי

סוג:

מספר שלם

הרכיב <CacheResource>

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

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

אלמנט <ExcludeErrorResponse>

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

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

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

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

<ExcludeErrorResponse>true</ExcludeErrorResponse>

ברירת מחדל:

false

נוכחות:

אופציונלי

סוג:

בוליאני

אלמנט <ExpirySettings>

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

ברירת מחדל:

לא רלוונטי

נוכחות:

חובה

סוג:

לא רלוונטי

רכיב <ExpirySettings>/<ExpiryDate>

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

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

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

מחרוזת

מאפיינים

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

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

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

רכיב <ExpirySettings>/<TimeOfDay>

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

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

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

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

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

מחרוזת

מאפיינים

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

אלמנט <ExpirySettings>/<TimeoutInSec>

מספר השניות שאחריהן יפוג התוקף של רשומת המטמון.

האלמנט <ExpirySettings>/<TimeoutInSeconds>

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

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

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

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

מחרוזת

מאפיינים

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

רכיב <היקף>

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

Application

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

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

Proxy

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

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

Target

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

הוספנו מראש את מפתח המטמון כך: orgName__envName__apiProxyName__deployedRevisionNumber__targetEndpointName .

Exclusive

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

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

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

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

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

apifactory__test__weatherapi__16__default__apiAccessToken
.

האלמנט <SkipCacheLookup>

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

<SkipCacheLookup>variable_condition_expression</SkipCacheLookup>

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

מחרוזת

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

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

הרכיב <SkipCachePopulation>

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

<SkipCachePopulation>variable_condition_expression</SkipCachePopulation>

ברירת מחדל:

לא רלוונטי

נוכחות:

אופציונלי

סוג:

מחרוזת

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

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

רכיב <UseAcceptHeader>

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

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

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

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

<UseAcceptHeader>false</UseAcceptHeader>

ברירת מחדל:

false

נוכחות:

אופציונלי

סוג:

בוליאני

הרכיב <UseResponseCacheHeaders>>

צריך להגדיר את הערך true כדי להביא בחשבון כותרות של תגובת HTTP במהלך הגדרת 'אורך חיים (TTL)' (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> כ-True. ההגדרה הזו גורמת ל-Edge להתייחס לכותרות התגובות, להשוות אותן לערך שהוגדר על ידי <ExpirySettings>, ואז להשתמש בערך הנמוך ביותר מבין השניים. בחישוב של כותרות התגובות, Edge בוחר את הערך הזמין כפי שמתואר בקטעים הבאים:

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

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

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

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

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

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

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

Edge for Public Cloud: המטמון מוצפן רק בארגונים שתומכים ב-PCI וב-HIPAA. ההצפנה לארגונים אלה מוגדרת במהלך ניהול ההקצאות של הארגון.

משתני זרימה

משתני הזרימה המוגדרים מראש הבאים מאוכלסים בזמן ביצוע מדיניות 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.