מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
מגדירה איך יש לכתוב ערכים שנשמרו במטמון בזמן ריצה.
המדיניות 'אכלוס מטמון' מיועדת לכתיבת רשומות במטמון לשימוש כללי לטווח קצר. הוא משמש בשילוב עם Lookup מדיניות המטמון (לקריאת רשומות של המטמון) מדיניות בנושא ביטול המטמון (לביטול התוקף של רשומות).
למידע על שמירת תגובות של משאבים בקצה העורפי המדיניות בנושא מטמון התשובות.
הפניה לרכיב
בהמשך מוצגים הרכיבים שאפשר להגדיר במדיניות הזו.
<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>
בונה את השם של כל פיסת נתונים המאוחסן
של Google.
בזמן הריצה, הערכים של <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
ברכיב הצאצא, המדיניות
מאחזרים את ערך התפוגה ממשתנה ההקשר בעל השם. אם המשתנה לא מוגדר,
המדיניות משתמשת בערך הטקסט המילולי של רכיב הצאצא.
<Scope> רכיב
ספירה שמשמשת לבניית קידומת למפתח מטמון כאשר <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 |
ההגדרה של נקודת הקצה של יעד משמשת כקידומת. מפתח המטמון מופיע בתחילת הטופס 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 ו-UndoateCache משתמשת
מטמון שאתם מגדירים או מטמון משותף שכלול כברירת מחדל. ברוב המקרים, הפרמטר
המטמון המשותף הבסיסי צריך לענות על הצרכים שלכם. כדי להשתמש במטמון הזה, פשוט השמטת את
רכיב <CacheResource>
.
מגבלות מטמון: מגבלות שונות לגבי מטמון להחיל, כמו שם וגודל של ערך, המספר הכולל של המטמון, מספר הפריטים במטמון, ותפוגה.
למידע נוסף על מאגר הנתונים הבסיסי, ראו מטמון פנימי. מידע נוסף על הגדרה במטמון, ראו יצירה ועריכה של מטמון של הסביבה.
מידע על הצפנת המטמון
שוליים לענן ציבורי: המטמון מוצפן רק ב- 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>