אתם צופים במסמכי התיעוד של Apigee ושל Apigee Hybrid.
לעיון במסמכי התיעוד של
Apigee Edge.
InvalidRLPolicy
קוד שגיאה
policies.resetquota.InvalidRLPolicy
גוף התשובה לשגיאה
{
"fault": {
"faultstring": "Invalid rate limit policy quota_policy_name",
"detail": {
"errorcode": "policies.resetquota.InvalidRLPolicy"
}
}
}הודעת שגיאה לדוגמה
{
"fault": {
"faultstring": "Invalid rate limit policy MyQuotaPolicy",
"detail": {
"errorcode": "policies.resetquota.InvalidRLPolicy"
}
}
}
מטרה
השגיאה הזו מתרחשת אם מדיניות מכסה שצוינה ברכיב <Quota> של מדיניות איפוס מכסה לא מוגדרת ב-proxy ל-API. האלמנט <Quota> הוא חובה, והוא מזהה את מדיניות הקצאה ליעד שהמונה שלה צריך להתעדכן באמצעות מדיניות איפוס הקצאה. צריך ליצור ולהגדיר את מדיניות היעד בנושא מכסת נפח באותו proxy ל-API, והיא צריכה להיות זמינה במהלך התהליך.
לדוגמה, נניח שהרכיב <Quota> מוגדר כמו שמופיע בהמשך, אבל אם MyQuotaPolicy לא מוגדר ב-API Proxy, תופיע השגיאה שמופיעה למעלה.
<Quota name="MyQuotaPolicy">
אבחון
מזהים את השם הלא תקין של מדיניות המכסות שצוין במדיניות איפוס המכסות. אפשר למצוא את השם של מדיניות הקצאה (Quota) במחרוזת השגיאה. לדוגמה, במחרוזת השגיאה הבאה, שם מדיניות המכסה הוא
MyQuotaPolicy:"faultstring": "Invalid rate limit policy MyQuotaPolicy"בודקים כל אחת ממדיניות Reset Quota ב-API Proxy שבו התרחשה השגיאה. מזהים את מדיניות מכסת האחסון הספציפית שבה מדיניות מכסת האחסון שצוינה ברכיב החובה
<Quota>זהה לשם שזוהה בשלב 1 למעלה.לדוגמה, במדיניות Reset Quota הבאה מוגדרת מדיניות Quota בשם
MyQuotaPolicy, שזהה למה שמופיע ב-faultstring:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ResetQuota async="false" continueOnError="false" enabled="true" name="Reset_Quota_Demo"> <DisplayName>Reset_Quota_Demo</DisplayName> <Properties/> <Quota name="MyQuotaPolicy"> <Identifier name="identifierName" ref="request.header.identifier"> <Allow>100</Allow> </Identifier> </Quota> </ResetQuota>קובעים אם מדיניות הקצאה (Quota) נוצרת ומוגדרת באותו שרת proxy ל-API. אם מדיניות המכסות לא קיימת באותו proxy ל-API, זו הסיבה לשגיאה.
בדוגמה שלמעלה, מדיניות המכסה
MyQuotaPolicyאמורה להיות קיימת בתהליך לפני שמדיניות איפוס המכסהReset_Quota_Demoמופעלת.מכיוון שמדיניות המכסה
MyQuotaPolicyלא קיימת בתהליך, תקבלו את קוד השגיאה:
"errorcode": "policies.resetquota.InvalidRLPolicy"
רזולוציה
מוודאים שמדיניות הקצאה שהוצהרה ברכיב <Quota> מוגדרת ב-proxy ל-API. מדיניות מכסת היעד הזו צריכה להיות זמינה כשמדיניות איפוס המכסה מופעלת.
FailedToResolveAllowCountRef
קוד שגיאה
policies.resetquota.FailedToResolveAllowCountRef
גוף התשובה לשגיאה
Failed to resolve allow count reference reference_name for identifier identifier_name in ResetQuotaStepDefinition:policy_name;API Proxy:proxy_name;Revision: revision_number;Environment:env_name;Organization:org_name
הודעת שגיאה לדוגמה
Failed to resolve allow count reference request.header.allowcount for identifier
identifierName in ResetQuotaStepDefinition:ResetQuota;API Proxy:Reset_Quota;
Revision:10;Environment:test;Organization:demo
הערה: הודעת השגיאה שלמעלה לא נשלחת כתגובה ללקוח. היא מוצגת רק בכלי Trace כשגיאה ממדיניות Reset Quota. למטה מוצג צילום מסך לדוגמה.

השגיאה שמוחזרת ללקוח היא פשוט: policies.ratelimit.QuotaViolation.
מטרה
השגיאה הזו מתרחשת אם אי אפשר לפתור את ההפניה למשתנה שמכיל את מספר ההרשאות ברכיב <Allow> של המדיניות. זהו רכיב חובה שמציין את הסכום להפחתה מהמונה של מכסת השימוש.
אבחון
מזהים את מדיניות Reset Quota (איפוס מכסת השימוש) שבה אירעה השגיאה ואת השם של משתנה ההפניה שלא ניתן לפתור. אפשר למצוא את שני הפריטים האלה בתגובה לשגיאה.
לדוגמה, במחרוזת השגיאה הבאה, שם המדיניות הוא
ResetQuotaוההפניה היאrequest.header.allowcount:Failed to resolve allow count reference request.header.allowcount for identifier identifierName in ResetQuotaStepDefinition:ResetQuota;API Proxy:Reset_Quota; Revision:10;Environment:test;Organization:demoב-XML של מדיניות איפוס המכסה שנכשלה, מוודאים ששם משתנה ההפניה שבו נעשה שימוש זהה לשם ההפניה שזוהה בתשובת השגיאה (שלב 1 למעלה).
לדוגמה, המדיניות הבאה מגדירה את האלמנט עם ההפניה בשם
request.header.allowcount, שזהה למה שמופיע בשגיאה:<ResetQuota async="false" continueOnError="false" enabled="true" name="ResetQuota"> <DisplayName>ResetQuota</DisplayName> <Properties/> <Quota name="MyQuotaPolicy"> <Identifier name="identifierName"> <Allow ref="request.header.allowcount"/> </Identifier> </Quota> </ResetQuota>בודקים אם משתנה ההפניה מוגדר וזמין בתהליך שבו מופעלת מדיניות Reset Quota.
אם המשתנה הוא:
- מחוץ להיקף (לא זמין בתהליך הספציפי שבו המדיניות מופעלת) או
- לא ניתן לפתור (לא מוגדר)
אז זה הגורם לשגיאה.
בדוגמה שמוצגת למעלה, הערך של המאפיין allowed count ברכיב
<Allow>אמור להישלף מכותרת הבקשה שנקראת allowcount. עם זאת, מערכת Apigee לא מצליחה לפתור את request.header.allowcount. זה קורה אם הכותרת allowcount לא מועברת כחלק מבקשת ה-API.לפניכם בקשת API לדוגמה שלא כוללת את הכותרת allowcount כחלק מהבקשה:
curl -v http://your_host_alias/v1/reset_quota -H "Content-Type: application/json"
כאשר your_host_alias הוא דומיין שפונה לציבור ומשמש לגישה לממשקי ה-API, כפי שהוגדר במאפיין
virtualhosts.hostAliasesבקובץ ההחלפות. איך מציינים שינויים בהגדרותהסיבה לכך היא שהכותרת allowcount לא מועברת כחלק מהבקשה, ולכן המשתנה request.header.allowcount שמשמש ברכיב
<Allow>במדיניות Reset Quota שלמעלה לא מוגדר, ולכן אי אפשר לפתור אותו. לכן תקבלו את תגובת השגיאה:Failed to resolve allow count reference request.header.allowcount for identifier identifierName in ResetQuotaStepDefinition:ResetQuota;API Proxy:Reset_Quota; Revision:10;Environment:test;Organization:demo
רזולוציה
מוודאים שהמשתנה שאליו יש הפניה ברכיב <Allow> קיים או מוגדר וזמין בתהליך הספציפי שבו מופעלת מדיניות איפוס המכסה.
כדי לתקן את הדוגמה שמוצגת למעלה, אפשר לשנות את הבקשה כך שתכלול את הכותרת allowcount כמו שמוצג בהמשך:
curl -v http://your_host_alias/v1/reset_quota -H "Content-Type: application/json" -H "allowcount:30"
כאשר your_host_alias הוא דומיין שפונה לציבור ומשמש לגישה לממשקי ה-API, כפי שהוגדר במאפיין virtualhosts.hostAliases בקובץ ההחלפות.
איך מציינים שינויים בהגדרות
FailedToResolveRLPolicy
קוד שגיאה
policies.resetquota.FailedToResolveRLPolicy
גוף התשובה לשגיאה
{
"fault": {
"faultstring": "Failed to resolve rate limit policy",
"detail": {
"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
}
}
}
הודעת שגיאה לדוגמה
{
"fault": {
"faultstring": "Failed to resolve rate limit policy",
"detail": {
"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
}
}
}
מטרה
השגיאה הזו מתרחשת אם לא ניתן לפענח את המשתנה שאליו מפנה המאפיין ref ברכיב <Quota>.
לדוגמה, אם המאפיין ref מוגדר כ-request.header.quotapolicy ברכיב <Quota> אבל הוא לא זמין בתהליך של proxy ל-API, תוצג השגיאה שמופיעה למעלה.
<Quota ref="request.header.quotapolicy">
אבחון
בודקים כל אחת ממדיניות Reset Quota ב-API Proxy שבו התרחשה השגיאה, ומזהים את מדיניות Reset Quota שבה לא ניתן לפתור את השם של משתנה ההפניה שצוין באלמנט
<Quota>בצורה תקינה.בודקים אם המשתנה מוגדר וזמין בתהליך העבודה שבו מופעלת מדיניות Reset Quota.
אם המשתנה הוא:
- מחוץ להיקף (לא זמין בתהליך הספציפי שבו המדיניות מופעלת) או
- לא ניתן לפתור (לא מוגדר)
אז זה הגורם לשגיאה.
בדוגמה שמוצגת בהמשך, השם של מדיניות המכסה שאליה מתבצעת הפנייה אמור להישלף מכותרת הבקשה שנקראת quotapolicy. עם זאת, Apigee לא יכול לפתור את request.header.quotapolicy. זה קורה אם הכותרת quotapolicy לא מועברת כחלק מבקשת ה-API.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ResetQuota async="false" continueOnError="false" enabled="true" name="Reset_Quota_Demo"> <DisplayName>Reset_Quota_Demo</DisplayName> <Properties/> <Quota ref="request.header.quotapolicy"> <Identifier name="identifierName" ref="request.header.identifier"> <Allow>100</Allow> </Identifier> </Quota> </ResetQuota>לפניכם בקשת API לדוגמה שלא מעבירה את הכותרת quotapolicy כחלק מהבקשה:
curl -v http://your_host_alias/v1/reset_quota -H "Content-Type: application/json"
כאשר your_host_alias הוא דומיין שפונה לציבור ומשמש לגישה לממשקי ה-API, כפי שהוגדר במאפיין
virtualhosts.hostAliasesבקובץ ההחלפות. איך מציינים שינויים בהגדרותהסיבה לכך היא שהכותרת quotapolicy לא מועברת כחלק מהבקשה, ולכן ההפניה request.header.quotapolicy שמשמשת ברכיב
<Quota>בהגדרה Reset Quota policy שלמעלה לא מוגדרת ולא ניתן לפתור אותה. כתוצאה מכך, מתקבלת תגובת השגיאה:"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
רזולוציה
מוודאים שהמאפיין ref שאליו מתייחס הרכיב <Quota> נפתר בזמן הריצה וזמין בתהליך הספציפי שבו מופעלת מדיניות איפוס המכסה.
כדי לתקן את הדוגמה שמוצגת למעלה, אפשר לשנות את הבקשה כך שתכלול את הכותרת quotapolicy כמו שמוצג למטה:
curl -v http://your_host_alias/v1/reset_quota -H "Content-Type: application/json" -H "quotapolicy:MyQuotaPolicy"
כאשר your_host_alias הוא דומיין שפונה לציבור ומשמש לגישה לממשקי ה-API, כפי שהוגדר במאפיין virtualhosts.hostAliases בקובץ ההחלפות.
איך מציינים שינויים בהגדרות