הדף הזה רלוונטי ל-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">
אבחון
מזהים את השם הלא תקין של מדיניות הקצאה שצוין במדיניות Reset 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>קובעים אם מדיניות מכסה כזו נוצרת ומוגדרת באותו שרת proxy ל-API. אם מדיניות המכסה לא קיימת באותו proxy ל-API, זו הסיבה לשגיאה.
בדוגמה שלמעלה, מדיניות המכסות
MyQuotaPolicyאמורה להיות בתהליך לפני שמדיניות איפוס המכסותReset_Quota_Demoמופעלת.מכיוון שמדיניות המכסות
MyQuotaPolicyלא קיימת בתהליך, תקבלו את קוד השגיאה:
"errorcode": "policies.resetquota.InvalidRLPolicy"
רזולוציה
מוודאים שמדיניות מכסה (Quota) שהוגדרה ברכיב <Quota> מוגדרת ב-proxy ל-API. מדיניות מכסה (Quota) של היעד הזה צריכה להיות זמינה כשמדיניות איפוס מכסה (Reset Quota) מופעלת.
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 כשגיאה ממדיניות איפוס המכסה. למטה מוצגת דוגמה בצילום מסך.

השגיאה שמוחזרת ללקוח היא פשוט: policies.ratelimit.QuotaViolation.
מטרה
השגיאה הזו מתרחשת אם לא ניתן לפתור את ההפניה למשתנה שמכיל את מספר ההרשאות ברכיב <Allow> של המדיניות. זהו רכיב חובה שמציין את הסכום להפחתה של מונה המכסה.
אבחון
מזהים את מדיניות איפוס המכסה שבה התרחשה השגיאה ואת השם של משתנה ההפניה שלא ניתן לפענח. אפשר למצוא את שני הפריטים האלה בתגובה לשגיאה.
לדוגמה, במחרוזת השגיאה הבאה, שם המדיניות הוא
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.
אם המשתנה הוא:
- מחוץ להיקף (לא זמין בתהליך הספציפי שבו המדיניות מופעלת) או
- לא ניתן לפתור (לא מוגדר)
אז זו הסיבה לשגיאה.
בדוגמה שמוצגת למעלה, הערך של המונה המותר ברכיב
<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 בקובץ ההחלפות. מידע נוסף זמין במאמר בנושא ציון החלפות של הגדרות.