כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של
Apigee X. מידע
המדיניות הזו מגדירה את אופן הכתיבה של ערכים שנשמרו במטמון בזמן ריצה.
המדיניות 'אכלוס מטמון' מיועדת לכתיבת רשומות במטמון לשימוש כללי לטווח קצר. משתמשים בו בשילוב עם המדיניות לחיפוש מטמון (לקריאת רשומות מטמון) ועם המדיניות של ביטול המטמון (לבדיקת רשומות).
למידע על שמירת התגובות ממשאבי קצה עורפי, תוכלו לעיין במדיניות בנושא מטמון התגובה.
הפניה לרכיב
בהמשך מפורטים הרכיבים שאפשר להגדיר במדיניות הזו.
<PopulateCache async="false" continueOnError="false" enabled="true" name="Populate-Cache-1"> <DisplayName>Populate Cache 1</DisplayName> <Properties/> <CacheKey> <Prefix/> <KeyFragment ref=""/> </CacheKey> <!-- Omit this element if you're using the included shared cache. --> <CacheResource/> <Scope>Exclusive</Scope> <ExpirySettings> <TimeoutInSeconds>300</TimeoutInSeconds> </ExpirySettings> <Source>flowVar</Source> </PopulateCache>
מאפייני <PopulateCache>
בטבלה הבאה מפורטים המאפיינים שמשותפים לכל רכיבי ההורה של המדיניות:
מאפיין | התיאור | ברירת המחדל | נוכחות |
---|---|---|---|
name |
השם הפנימי של המדיניות. הערך של המאפיין אפשר להשתמש באלמנט |
לא רלוונטי | נדרש |
continueOnError |
צריך להגדיר את הערך צריך להגדיר את הערך |
false | אופציונלי |
enabled |
צריך להגדיר את הערך צריך להגדיר את הערך |
true | אופציונלי |
async |
המאפיין הזה הוצא משימוש. |
false | הוצא משימוש |
רכיב <DisplayName>
יש להשתמש במאפיין הזה בנוסף למאפיין name
כדי להוסיף למדיניות
בכלי לעריכת שרת ה-proxy לניהול ממשק משתמש עם שם אחר בשפה טבעית.
<DisplayName>Policy Display Name</DisplayName>
ברירת המחדל |
לא רלוונטי אם משמיטים את הרכיב הזה, המערכת משתמשת בערך של מאפיין |
---|---|
נוכחות | אופציונלי |
תיאור | מחרוזת |
רכיב <CacheKey>
מגדירה מצביע ייחודי לקטע נתונים שנשמר במטמון.
מפתחות מטמון מוגבלים לגודל של 2KB.
<CacheKey> <Prefix>string</Prefix> <KeyFragment ref="variable_name" /> <KeyFragment>literal_string</KeyFragment> </CacheKey>
ברירת מחדל: |
לא רלוונטי |
נוכחות: |
נדרש |
סוג: |
לא רלוונטי |
<CacheKey>
בונה את השם של כל פיסת נתונים ששמורה במטמון.
בזמן הריצה, הערכים של <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>
. למידע נוסף, אפשר לעיין במאמר עבודה עם מפתחות מטמון.
הרכיב<CacheResource>
ההגדרה הזאת קובעת את המטמון שבו ההודעות יאוחסנו.
יש להשמיט את הרכיב הזה לחלוטין אם המדיניות הזו (וכללי המדיניות הרלוונטיים של LookupCache ו-InvalidateCache) משתמשים במטמון המשותף.
<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>
. למידע נוסף, אפשר לעיין במאמר עבודה עם מפתחות מטמון.
אלמנט <ExpirySettings>
המדיניות הזו קובעת מתי יפוג התוקף של רשומה מהמטמון. כשהוא
קיים, <TimeoutInSeconds>
מבטל את
גם את <TimeOfDay>
וגם את <ExpiryDate>
.
<ExpirySettings> <!-- use exactly one of the following child elements --> <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds> <ExpiryDate ref="date_variable">expiration_date</ExpiryDate> <TimeOfDay ref="time_variable">expiration_time</TimeOfDay> </ExpirySettings>
ברירת מחדל: |
לא רלוונטי |
נוכחות: |
נדרש |
סוג: |
לא רלוונטי |
רכיבי צאצא של <ExpirySettings>
יש להשתמש ברכיב צאצא אחד בלבד. בטבלה הבאה מתוארים רכיבי הצאצא של
<ExpirySettings>
:
רכיב צאצא | התיאור |
---|---|
<TimeoutInSeconds> |
מספר השניות שאחריהן יפוג התוקף של רשומת המטמון. <ExpirySettings> <TimeoutInSeconds ref="var-containing-duration">expiry</TimeoutInSeconds> </ExpirySettings> הרכיב הזה מחליף את רכיב |
<ExpiryDate> |
ההגדרה הזאת קובעת את התאריך שבו יפוג התוקף של רשומת המטמון. אפשר לציין מחרוזת בפורמט
<ExpirySettings> <ExpiryDate ref="var-containing-date">expiry</ExpiryDate> </ExpirySettings> אם התאריך שצוין חל בעבר, המדיניות תחיל את משך החיים המקסימלי על הרשומה שנשמרה במטמון. משך הזמן המקסימלי הוא 30 יום. |
<TimeOfDay> |
ההגדרה הזאת קובעת את השעה שבה יפוג התוקף של רשומת המטמון.
יש לציין מחרוזת בצורה <ExpirySettings> <TimeOfDay ref="var-containing-time">expiry</TimeOfDay> </ExpirySettings> |
יש לציין רק אחד מרכיבי הצאצא האפשריים. אם תציינו כמה רכיבים, סדר הקדימות הוא:TimeoutInSeconds
, ExpiryDate
,
TimeOfDay
.
עם כל אחד מרכיבי הצאצא של <ExpirySettings>
שלמעלה,
אם מציינים את המאפיין האופציונלי ref
ברכיב הצאצא, המדיניות תאחזר את ערך התפוגה ממשתנה ההקשר בעל השם. אם המשתנה לא מוגדר, המדיניות מתבססת על ערך הטקסט המילולי של רכיב הצאצא.
רכיב <היקף>
זהו ספירה שמשמשת ליצירת קידומת למפתח מטמון במקרים שבהם לא מסופק רכיב <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 __. אם מגדירים רשומת |
Application |
שם ה-proxy של ה-API משמש כקידומת. מפתח המטמון מצורף מראש בצורה orgName__envName__apiProxyName. |
Proxy |
תצורת ProxyEndpoint משמשת כקידומת. מפתח המטמון מצורף מראש בצורה orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName . |
Target |
תצורת TargetEndpoint משמשת כקידומת. הוספנו מראש את מפתח המטמון כך: orgName__envName__apiProxyName__deployedRevisionNumber__targetEndpointName . |
Exclusive |
ברירת מחדל. זוהי השיטה הספציפית ביותר, ולכן יש סיכון מינימלי להתנגשויות בין מרחבי שמות במטמון נתון. הקידומת היא אחת משתי צורות:
הוספנו מראש את מפתח המטמון מהטופס orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName לדוגמה, המחרוזת המלאה עשויה להיראות כך: apifactory__test__weatherapi__16__default__apiAccessToken. |
רכיב <Source>
מציינת את המשתנה שאת הערך שלו צריך לכתוב במטמון.
<Source>source_variable</Source>
ברירת מחדל: |
לא רלוונטי |
נוכחות: |
נדרש |
סוג: |
מחרוזת |
הערות על שימוש
כדאי להשתמש במדיניות הזו כדי לשמור במטמון באופן כללי. בזמן ריצה, המדיניות <PopulateCache>
כותבת נתונים מהמשתנה שציינת
ברכיב <Source>
במטמון שציינתם ברכיב <CacheResource>
. אפשר להשתמש ברכיבים <CacheKey>
,
<Scope>
ו-<Prefix>
כדי לציין מפתח שניתן
להשתמש בו כדי לאחזר את הערך מהמדיניות <LookupCache>
. אפשר להשתמש
ברכיב <ExpirySettings>
כדי להגדיר מתי יפוג התוקף של הערך שנשמר במטמון.
שמירה במטמון למטרה כללית עם המדיניות PopulateCache, המדיניות של LookupCache ו-InvalidateCache, מתבססת על מטמון שאתם מגדירים או מטמון משותף שכלול כברירת מחדל. ברוב המקרים, המטמון המשותף הבסיסי אמור לענות על הצרכים שלך. כדי להשתמש במטמון הזה, צריך פשוט להשמיט את הרכיב <CacheResource>
.
מגבלות שונות על המטמון: חלות מגבלות שונות על המטמון, כמו גודל השם והערך, המספר הכולל של המטמון, מספר הפריטים במטמון ותאריך התפוגה.
מידע נוסף על מאגר הנתונים הבסיסי זמין במאמר נתונים פנימיים של מטמון. למידע נוסף על הגדרת קובצי מטמון, תוכלו לקרוא את המאמר יצירה ועריכה של מטמון של סביבה.
מידע על הצפנה במטמון
Edge for Public Cloud: המטמון מוצפן רק בארגונים שתומכים ב-PCI וב-HIPAA. ההצפנה לארגונים אלה מוגדרת במהלך ניהול ההקצאות של הארגון.
קודי שגיאה
בקטע הזה מתוארים קודי התקלות והודעות השגיאה שמוחזרים, ומשתני השגיאה שמוגדרים על ידי Edge כשהמדיניות הזו גורמת לשגיאה. חשוב לדעת אם אתם מפתחים כללים לתיקון תקלות. מידע נוסף זמין במאמר מה צריך לדעת על שגיאות מדיניות ועל טיפול בפגמים.
שגיאות בזמן ריצה
השגיאות האלה יכולות להתרחש כשהמדיניות מופעלת.
קוד שגיאה | סטטוס HTTP | מופיע כאשר |
---|---|---|
policies.populatecache.EntryCannotBeCached |
500 | לא ניתן לשמור ערך במטמון. אובייקט ההודעה שנשמר במטמון הוא לא מופע של מחלקה שניתן להגדיר עבורה סדרה. |
שגיאות בפריסה
השגיאות האלה יכולות להתרחש כשפורסים שרת proxy שכולל את המדיניות הזו.
שם השגיאה | סיבה | תיקון |
---|---|---|
InvalidCacheResourceReference |
השגיאה הזו מתרחשת אם הרכיב <CacheResource> במדיניות PopulateCache מוגדר לשם שלא קיים בסביבה שבה נפרס שרת ה-proxy של ה-API. |
build |
CacheNotFound |
המטמון שצוין ברכיב <CacheResource> לא קיים. |
build |
משתני שבר
המשתנים האלה מוגדרים כשהמדיניות הזו גורמת לשגיאה. אפשר לקרוא מידע נוסף במאמר מה צריך לדעת על שגיאות מדיניות.
משתנים | מיקום | דוגמה |
---|---|---|
fault.name="fault_name" |
fault_name הוא שם התקלה, כפי שמפורט בטבלה שגיאות זמן ריצה שלמעלה. שם הטעות הוא החלק האחרון בקוד השגיאה. | fault.name = "EntryCannotBeCached" |
populatecache.policy_name.failed |
policy_name הוא השם שצוין על ידי המשתמש של המדיניות שגרמה לשגיאה. | populatecache.POP-CACHE-1.failed = true |
דוגמה לשגיאה
{ "fault": { "faultstring": "[entry] can not be cached. Only serializable entries are cached.", "detail": { "errorcode": "steps.populatecache.EntryCannotBeCached" } } }
דוגמה לכלל שגיאה
<FaultRule name="Populate Cache Fault"> <Step> <Name>AM-EntryCannotBeCached</Name> <Condition>(fault.name Matches "EntryCannotBeCached") </Condition> </Step> <Condition>(populatecache.POP-CACHE-1.failed = true) </Condition> </FaultRule>