מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
בנושא הזה מתואר המבנה של שגיאות המדיניות והסוגים של משתני זרימה מוגדרת כשמתרחשת שגיאה שקשורה למדיניות. המידע הזה חיוני אם אתם מתכננים הטמעת טיפול בתקלות בשרתי ה-proxy שלך.
הנושא הזה מבוסס על ההנחה שיש לכם הבנה כללית לגבי אופן הטיפול בתקלות ב-Edge, וגם שאתם יודעים מהם כללי הכשלים. אם אתם צריכים בדיקה, תוכלו לקרוא את המאמר טיפול בתקלות. המידע שמפורט כאן לעזור לכם גם לנווט בחומר העזר בנושא שגיאות מדיניות ולהשתמש בו.
מידע על הודעת השגיאה של מדיניות ברירת המחדל
כשמדיניות מקפיצה שגיאה, Edge נכנס מיד לתהליך השגיאה ויוצר שגיאה. הודעה. ההודעה הזו שנוצרה על ידי המערכת היא אובייקט JSON שכולל שני קטעי מידע: errorcode ו-faultstring.
לדוגמה:
{ "fault":{ "detail":{ "errorcode":"steps.extractvariables.SourceMessageNotAvailable" }, "faultstring":"foo message is not available for ExtractVariable: ParseJsonResponse" } }
נפרק במהירות את הודעת השגיאה הזו:
קוד השגיאה כולל קידומת ושגיאה
name, באופן הבא: [prefix].[error_name]
. בדוגמה שלמעלה
steps.extractvariables
היא התחילית ו-SourceMessageNotAvailable
הוא
שם השגיאה. הקידומת מציינת איזה סוג מדיניות גרמה לשגיאה. למעלה
לדוגמה, ניתן לראות שמדיניות של משתני חילוץ יצרה את השגיאה, ושם השגיאה הוא
SourceMessageNotAvailable
faultstring מכיל תיאור של השגיאה. מחרוזת השגיאה
כוללת רמזים שעוזרים לאתר את הבעיה הספציפית שגרמה לשגיאה, כמו
של המדיניות, השם של משתנה שלא טופל או מה שתרמה לשגיאה. עבור
לדוגמה, בהודעת השגיאה שלמעלה, "foo
" הוא במקרה של שם
משתנה ההודעה שמוזכרים במדיניות וגם "ParseJsonResponse
" הוא השם של
המדיניות שגרמה לשגיאה.
משתנים שספציפיים לשגיאות מדיניות
כשמופעלת שגיאה שקשורה למדיניות, משתני זרימה מסוימים שספציפיים לשגיאות מאוכלסים. האלה הם שימושיים במיוחד בטיפול בתקלות. כפי שהוסבר בנושא טיפול בתקלות, מקובל לפתור את הבעיה "ללכוד" את שגיאות המדיניות שנוצרות על ידי המערכת ולבצע פעולה נוספת, כמו יצירת תשובה מותאמת אישית לשגיאה. לדוגמה, מטעמי אבטחה, ייתכן שתרצו למנוע מלקוחות לראות את השגיאות ואת קודי הסטטוס בפועל ש-Edge מחזיר.
fault.name
משתנה
כשמדיניות מקפיצה שגיאה, היא מגדירה את משתנה הזרימה fault.name
error_name
של חלק מקוד השגיאה (כפי שמתואר בקטע הקודם). זה מאוד
לעיתים קרובות כדי להעריך את המשתנה הזה כדי לבצע כללי כשל באופן מותנה.
לפניכם כללת שגיאה לדוגמה שבודק את הערך של fault.name
:
<faultrule name="VariableOfNonMsgType"<>/faultrule><FaultRule name="Source Message Not Available Fault"> <Step> <Name>AM-CustomErrorMessage</Name> <Condition>(fault.name Matches "SourceMessageNotAvailable") </Condition> </Step> </FaultRule>
חשוב לזכור שכשמדיניות מסוימת גורמת לשגיאה, fault.name
תמיד מוגדר לשם השגיאה.
משתנה אחד ([prefix].[policy_name].failed
)
מלבד fault.name
, משתנה נוסף שמפתחים בודקים בדרך כלל הוא
הדגל [prefix].[policy_name].failed
, שמוגדר כ-true או False כאשר
המדיניות מופעלת. בכללי טעות, כדאי לבדוק מתי הוא נכון -
כלומר, לבדוק אם התרחשה שגיאה. כך יוצרים תנאי שבודק את
סימון [prefix].[policy_name].failed
. כדי לבדוק נכון את המשתנה הזה, צריך
יודעים שני דברים:
- שם המדיניות שבודקים. זהו הערך של המדיניות , ולא את השם המוצג. המאפיין הזה תמיד נכלל במדיניות ה-XML של ההגדרה.
- קידומת שהיא ספציפית לסוג המדיניות שבודקים. (אנחנו כאן מוסבר איך למצוא את הקידומת).
לצורך המחשה, הנה דוגמה נוספת לכלל של שגיאה. שימו לב בתנאי החיצוני איך
שם המשתנה [prefix].[policy_name].failed
נוצר. במקרה הזה, התחילית היא
extractvariables
ושם המדיניות הוא ParseJsonResponse
. כאן
במקרה הזה, כלל השגיאה יפעל רק אם המשתנה הזה נכון. הנה טיפ: כי זו טעות
יכולים לכלול כמה שלבים, הדפוס הזה הוא דרך נחמדה לארגן את כללי השגיאה
של משפטים יחידים,
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="Extract Variable Faults"> <Step> <Name>AM-CustomErrorMessage</Name> <Condition>(fault.name Matches "SourceMessageNotAvailable") </Condition> </Step> <Condition>(extractvariables.ParseJsonResponse.failed = true) </Condition> </FaultRule>
מידע על
משתנים מסוג error
ו-message
המשתנה error
זמין רק בתהליך השגיאה של
שרת proxy. אפשר לקבל מידע שימושי ממשתנה השגיאה, כמו הודעת השגיאה, הסטטוס
את הקוד, את ביטוי הנימוק וכו'. תבנית הפורמט של משתנה השגיאה היא:
error.[error_component] = [value]
לדוגמה:
error.message
= "request message is not available for ExtractVariable:
ParseJsonResponse
אינץ'
ו-
error.status.code = "500"
המשתנה message
זמין גם בתהליך השגיאה ואפשר להשתמש בו בשביל
למטרות דומות למשתנה error
. המשתנה של ההודעה הוא מיוחד מפני שהוא
הוא לפי הקשר. בתהליך הבקשה הוא פועל כמו משתנה בקשה, ובתהליך התגובה
אפשר להשתמש בו כדי לקבל או להגדיר ערכי תגובה. אפשר לקרוא מידע נוסף במאמר שימוש
בקשות למשתנים של הודעות.
מקורות מידע בנושא משתנים
לקבלת מידע על כל המשתנים של Edge, כולל error
ו-
message