אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X. מידע
כשמשתמשים במדיניות מטמון, צריך להגדיר מפתחות מטמון כדי לוודא שהמפתחות של הערכים במטמון הם ייחודיים. מפתח מטמון, יחד עם ערכים אחרים שאפשר להגדיר, מאפשר לכם לקבל באופן מהימן את אותם נתונים שהזנתם. משתמשים במפתחות מטמון עם המדיניות Populate Cache, המדיניות LookupCache, המדיניות InvalidateCache והמדיניות Response Cache.
הערכים של רכיבי ההגדרה – <CacheKey>/<KeyFragment>, <Scope> ו-<Prefix> – משורשרים כדי ליצור מזהה שמשויך לערך שמוסיפים למטמון. משתמשים באותה הגדרה כדי לאחזר את הערך.
אפשר ליצור מפתח מטמון באמצעות רכיבי ההגדרה הבאים של מדיניות המטמון:
| רכיב הגדרת מטמון | תיאור |
|---|---|
<CacheKey> / <KeyFragment> |
משתמשים ברכיבי <CacheKey> <KeyFragment> בשילוב כדי לציין מזהה ייחודי לרשומות במטמון. הערכים של KeyFragment יכולים להיות מחרוזות סטטיות או משתנים. |
<Scope> או <Prefix> |
אפשר להשתמש ברכיבים <Scope> או <Prefix> כדי להגדיר מרחב שמות נוסף למפתחות של מטמון. <Scope> מונה רשימה של ערכים מוגדרים מראש.
הרכיב <Prefix> מחליף את הערך של <Scope> בערך שתבחרו. |
הערכים האלה משורשרים בפורמט הבא, כשערכי <Scope> או <Prefix> מופרדים מערכי KeyFragment באמצעות קו תחתון כפול.
כמה ערכים של KeyFragment מופרדים גם הם באמצעות קו תחתון כפול.
scope | prefix__keyfragment[__keyfragment]
באמצעות מדיניות מטמון התגובות, אפשר להוסיף למפתח המטמון הזה ערכים מכותרת התגובה Accept.
שימוש בתג <CacheKey>
רכיב <CacheKey> מגדיר איך Edge ייצור מזהה ייחודי (מפתח) לכל רשומה במטמון שהוא יוצר. כש-Edge מאחזר את הערך שנשמר במטמון, הוא משתמש במפתח המטמון כדי לאתר את הערך הנכון. במדיניות ResponseCache, הגדרה אחת מגדירה את המפתח גם לשמירה במטמון וגם לאחזור. במדיניות PopulateCache ובמדיניות LookupCache, כל כלל מדיניות צריך לכלול רכיבי <CacheKey> זהים כדי להבטיח שערך שאוחזר מהמטמון תואם לערך שהוכנס אליו.
רכיב <CacheKey> יכול לכלול כמה רכיבי <KeyFragment>. בזמן הריצה, הערכים שצוינו באלמנטים <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 כדי להגדיר מפתח מטמון כך שהמפתח יכלול חלקים ממחרוזת השאילתה של בקשה. לדוגמה, כתובת ה-URL הבאה משתמשת בשני פרמטרים של שאילתה – param1 ו-param2 – שאפשר להשתמש בהם במפתח המטמון:
http://myaccount.apigee.net/mydata?param1=value1¶m2=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¶m2=value2 ו-param2=value2¶m1=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, אפשר להגדיר את ההיקף כך שיהיה יותר ספציפי, מגלובלי ועד בלעדי. ההיקף Exclusive הוא הספציפי ביותר, ולכן הוא מייצג סיכון מינימלי להתנגשויות במרחב השמות במטמון נתון. כל ערך במטמון עם היקף Exclusive מתחיל בקידומת מהצורה הבאה:
orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__[serializedCacheKey]
לדוגמה, מפתח מטמון שנוצר משימוש בערך Exclusive עבור <Scope>
יכול להיראות כך:
apifactory__test__weatherapi__16__default__apiAccessToken