עבודה עם מפתחות מטמון

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

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

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

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

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

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

scope | prefix__keyfragment[__keyfragment]

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

שימוש ב-<CacheKey>

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

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

לדוגמה, התצורה הבאה יוצרת ערך של hello__world לשימוש במפתח המטמון:

<CacheKey>
    <KeyFragment>hello</KeyFragment>
    <KeyFragment>world</KeyFragment>
<CacheKey>

אפשר גם להשתמש בערכי משתנה במפתח מטמון באמצעות הפניה למשתנה ברכיב <KeyFragment>, כפי שמוצג כאן:

<KeyFragment ref="variable_name"/>

לדוגמה, כדי לגרום לערך של מפתח המטמון לכלול את סוג התוכן (Content-Type) של הודעת הבקשה, צריך לבצע את הפעולות הבאות:

<KeyFragment ref="request.header.Content-Type"/>

בתצורה הבאה, למשתנה request.header.Content-Type יש את הערך application/json.

<CacheKey>
  <KeyFragment>apiAccessToken</KeyFragment>
  <KeyFragment ref="request.header.Content-Type" />
  <KeyFragment>bar</KeyFragment>
</CacheKey>

התוצאה היא מפתח מטמון שמסתיים בספרות apiAccessToken__application/json__bar.

רשימה של המשתנים שבהם אפשר להשתמש זמינה במאמר מידע על משתנים.

מפתחות מטמון שנגזרים מפרמטרים של שאילתה

באמצעות משתנים כמו request.queryparam.<queryparam_name> ו- request.querystring, ניתן להגדיר מפתח של מטמון כך שהמפתח יכלול חלקים ממחרוזת השאילתה של הבקשה. לדוגמה, כתובת האתר הבאה משתמשת בשני פרמטרים של שאילתות -- param1 ו-param2 -- שבהם ניתן להשתמש במפתח המטמון:

http://myaccount.apigee.net/mydata?param1=value1&param2=value2

הרכיב <CacheKey> יכול לשלב את הערכים האלה בעזרת הגדרות אישיות, כמו:

<CacheKey>
    <KeyFragment ref="request.queryparam.param1" />
    <KeyFragment ref="request.queryparam.param2" />
<CacheKey>

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

other_key_parts__value1__value2

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

לחלופין, אפשר להשתמש במשתנה request.querystring, שמוסיף את כל המחרוזת של הפרמטרים כחלק ממפתח המטמון. חשוב לזכור: השיטה הזו אמנם מביאה בחשבון את כל הפרמטרים, אבל אם סדר הפרמטרים משתנה בין בקשות, המפתח יהיה שונה. במילים אחרות, param1=value1&param2=value2 ו-param2=value2&param1=value1 לא מניבים את אותו ערך של מפתח המטמון.

רשימה של המשתנים שבהם אפשר להשתמש זמינה במאמר מידע על משתנים.

שימוש ב-<Scope> וב-<Prefix>

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

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

לדוגמה, הערך של <Scope> – Global (ההיקף הרחב ביותר) – מייצג את שם הארגון והסביבה. לכן, אם שרת ה-proxy שלך פרוס בארגון בשם 'mycompany' ובסביבה בשם 'prod', הערך שיוקצה מראש יהיה הבא:

הגדרות אישיות תוצאה
<Scope>Global</Scope> mycompany__prod__.

אם משתמשים בהיקף גלובלי עם מפתח המטמון שמוגדר למעלה, התוצאה תהיה:

הגדרות אישיות תוצאה
<Scope>Global</Scope>
<CacheKey>
    <KeyFragment>hello</KeyFragment>
    <KeyFragment>world</KeyFragment>
<CacheKey>
mycompany__prod__hello__world.

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

orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__[serializedCacheKey]

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

apifactory__test__weatherapi__16__default__apiAccessToken