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

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

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

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

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

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

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

היקף | prefix__keyfragment[__keyfragment]

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

שימוש ב-<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"/>

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

<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>, עליכם לציין ערך מותאם אישית לרווחים בין שמות.

לדוגמה, הערך 'Global' של <Scope> ההיקף הרחב ביותר שם הארגון והסביבה. לכן אם שרת ה-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