מדיניות איפוס QQota

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

מה

אפשר להשתמש בו כדי לשנות באופן דינמי את מספר הבקשות שנותר שמותר לפי המדיניות בנושא מכסת יעד. בדרך כלל משתמשים במדיניות הזו כדי להקטין את מספר המכסות הנוכחי של מדיניות המכסה, במקום להמתין שהמכסות יתאפסו.

לדוגמה, מדיניות מכסת היעד מגבילה מפתח ל-1,000 בקשות בשבוע. עד היום השני בשבוע, המפתח כבר הגיע למגבלה הזו. אפשר להשתמש במדיניות איפוס המכסה כדי לנכות 500 בקשות ממונה המכסות, וכך לאפשר 500 בקשות נוספות בשארית השבוע. בסוף השבוע, מדיניות המכסה תתאפס והמפתח יחזור ל-1, 000 בקשות בשבוע.

מידע נוסף על מדיניות המכסה זמין במאמר מדיניות המכסה. כדאי גם לקרוא את הפוסט הזה בקהילה לגבי שימוש במדיניות איפוס המכסה.

טעימות

דוגמאות קוד המדיניות הבאות ממחישות איך לאפס מוני מכסות:

איפוס מונה ברירת המחדל

<ResetQuota name="resetQuota">
   <Quota name="MyQuotaPolicy">
      <Identifier name="_default">
         <Allow>100</Allow>
      </Identifier>
   </Quota>
</ResetQuota>

המדיניות 'איפוס מכסה' מציינת את מדיניות היעד של המכסה באמצעות המאפיין name של התג <Quota>. בדוגמה שלמעלה, היעד הוא המדיניות MyQuotaPolicy.

בכל כללי המדיניות לאיפוס מכסות חובה לעדכן את התג <Identifier> כדי לציין את המונה במדיניות המכסה. כברירת מחדל, למדיניות המכסה יש מונה יחיד, אלא אם מדיניות המכסה כוללת גם את התג <Identifier>. בדוגמה הזו, במדיניות מכסת היעד לא נעשה שימוש בתג <Identifier>, לכן צריך לציין את המאפיין name בתור _default.

הרכיב <Allow> מציין את הערך שמשמש להפחתת מספר המכסות הנוכחי במדיניות היעד. בדוגמה הזו, מספר המכסות הוקטן ב-100 כדי לאפשר 100 בקשות נוספות למדיניות המכסה. כשהמדיניות בנושא מכסת יעד מתאפסת, השינוי הזה נמחק.

זוהי ההגדרה של מדיניות מכסת היעד:

<Quota name="MyQuotaPolicy">
  <Interval>5</Interval>
  <TimeUnit>hour</TimeUnit>
  <Allow count="100"/>
</Quota>

שימוש בחומר עזר

<ResetQuota name="resetQuota">
   <Quota ref="request.header.quotapolicy">
      <Identifier name="_default">
         <Allow ref="request.header.allowquota" />
      </Identifier>
   </Quota>
</ResetQuota>

בדוגמה הזו מעבירים את השם של מדיניות המכסה ומשנים את מספר המכסות ככותרות של הבקשה. לאחר מכן תוכלו להפנות למשתני התהליך שמכילים את הערכים האלה במדיניות 'איפוס המכסה'.

ציון המזהה

<ResetQuota name="resetQuota">
   <Quota name="QuotaPolicy">
      <Identifier ref="request.header.clientId">
         <Allow>100</Allow>
      </Identifier>
   </Quota>
</ResetQuota>

אם במדיניות target Quota צוין התג <Identifier>, אפשר לציין את אותו הערך בתג <Identifier> במדיניות איפוס המכסה, כדי לעדכן מספר ספציפי של מכסות. שימו לב איך התג <Identifier> במדיניות המכסה שבהמשך תואם לערך שצוין במדיניות איפוס המכסה:

<Quota name="QuotaPolicy">
  <Identifier ref="request.header.clientId"/> 
  <Interval>5</Interval>
  <TimeUnit>hour</TimeUnit>
  <Allow count="100"/>
</Quota>

הפניה לרכיב

ההפניה לרכיבים מתארת את הרכיבים והתכונות של המדיניות בנושא איפוס המכסה.

<ResetQuota async="false" continueOnError="false" enabled="true" name="Reset-Quota-1">
   <DisplayName>Reset Quota 1</DisplayName>
   <Quota name="quotaName" ref="request.header.quotapolicy">
      <Identifier name="identifierName" ref="request.header.identifier">
         <Class ref="request.header.classIdentifier" />
         <Allow>100</Allow>
      </Identifier>
   </Quota>
</ResetQuota>

מאפייני <ResetQuota>

<ResetQuota async="false" continueOnError="false" enabled="true" name="Reset-Quota-1"> 

בטבלה הבאה מפורטים המאפיינים שמשותפים לכל רכיבי ההורה של המדיניות:

מאפיין התיאור ברירת המחדל נוכחות
name

השם הפנימי של המדיניות. הערך של המאפיין name יכול להכיל אותיות, מספרים, רווחים, מקפים, קווים תחתונים ונקודות. הערך יכול להיות באורך של עד 255 תווים.

אפשר להשתמש באלמנט <DisplayName> כדי להוסיף למדיניות בכלי לעריכת שרת ה-proxy לניהול ממשק משתמש עם שם בשפה טבעית אחרת.

לא רלוונטי נדרש
continueOnError

צריך להגדיר את הערך false כדי להחזיר שגיאה במקרה של כישלון במדיניות. זו התנהגות צפויה ברוב כללי המדיניות.

צריך להגדיר את הערך true כדי להפעיל את התהליך גם אחרי כישלון במדיניות.

false אופציונלי
enabled

צריך להגדיר את הערך true כדי לאכוף את המדיניות.

צריך להגדיר את הערך false כדי להשבית את המדיניות. המדיניות לא תיאכף גם אם היא תישאר מצורפת לזרימה.

true אופציונלי
async

המאפיין הזה הוצא משימוש.

false הוצא משימוש

רכיב <DisplayName>

יש להשתמש במאפיין הזה בנוסף למאפיין name כדי להוסיף למדיניות בכלי לעריכת שרת ה-proxy לניהול ממשק משתמש עם שם אחר בשפה טבעית.

<DisplayName>Policy Display Name</DisplayName>
ברירת המחדל

לא רלוונטי

אם משמיטים את הרכיב הזה, המערכת משתמשת בערך של מאפיין name של המדיניות.

נוכחות אופציונלי
תיאור מחרוזת

רכיב <Quota>

מזהה את המדיניות בנושא מכסת יעד שצריך לעדכן את המונה שלה.

<Quota name="quotaName"  ref="request.header.quotapolicy">
   <Identifier name="identifierName" ref="request.header.identifier">
      <Allow>100</Allow>
   </Identifier>
</Quota>
ברירת מחדל: לא רלוונטי
נוכחות: נדרש
סוג: לא רלוונטי

מאפיינים

מאפיין התיאור ברירת המחדל נוכחות
name

מציין את שם המדיניות בנושא מכסת היעד.

לא רלוונטי אופציונלי
ר' משתנה זרימה שמכיל את השם של המדיניות בנושא מכסת יעד. אם מציינים גם את ref וגם את name, אז ref מקבל עדיפות. אם ref לא מפוענח בזמן הריצה, ייעשה שימוש ב-name. לא רלוונטי אופציונלי

רכיב <Quota>/<Identifier>

משתנה שמשמש לזיהוי ייחודי של המונה אם במדיניות target Quota צוין התג <Identifier>.

<Quota name="quotaName">
   <Identifier name="identifierName" ref="request.header.identifier">
      <Allow>100</Allow>
   </Identifier>
</Quota>
ברירת מחדל: לא רלוונטי
נוכחות: נדרש
סוג: מחרוזת

מאפיינים

מאפיין התיאור ברירת המחדל נוכחות
name

מציין את השם של מזהה הספירה במדיניות מכסת היעד. למדיניות מכסות שלא משתמשת בתג <Identifier>, צריך לציין את הערך _default.

לא רלוונטי אופציונלי
ר'

משתנה זרימה שמכיל את השם של מזהה הספירה במדיניות בנושא מכסת יעד. אם ציינת גם את ref וגם את name, אז ref מקבל עדיפות. אם ref לא מפוענח בזמן הריצה, ייעשה שימוש ב-name.

לא רלוונטי אופציונלי

אלמנט <Quota>/<Identifier>/<Allow>

מציין את הסכום להקטנת המונה. צריך לציין <Allow>, אחרת המדיניות לא תשנה את המכסה.

<Identifier name="identifierName" ref="request.header.identifier">
   <Allow ref="request.header.allowquota">100</Allow>
</Identifier>
ברירת מחדל: לא רלוונטי
נוכחות: נדרש
סוג: מספר שלם

מאפיינים

מאפיין התיאור ברירת המחדל נוכחות
ר'

משתנה זרימה שמכיל את השינוי בספירת המכסות במדיניות בנושא מכסת יעד.

לא רלוונטי אופציונלי

אלמנט <Quota>/<Identifier>/<Class>

מציין את המחלקה שבה יתעדכן מונה המכסות. מידע נוסף על השימוש במחלקה יחד עם מדיניות Quota זמין במדיניות המכסה.

<Identifier name="_default">
   <Class ref="request.header.classIdentifier">
     <Allow>200</Allow>
   </Class>
</Identifier>
ברירת מחדל: לא רלוונטי
נוכחות: אופציונלי
סוג: לא רלוונטי

מאפיינים

מאפיין התיאור ברירת המחדל נוכחות
ר'

הפניה למשתנה הזרימה שמכיל את המחלקה למכסה לעדכון.

לא רלוונטי אופציונלי

הפניה לשגיאות

בקטע הזה מתוארים קודי התקלות והודעות השגיאה שמוחזרים, ומשתני השגיאה שמוגדרים על ידי Edge כשהמדיניות הזו גורמת לשגיאה. חשוב לדעת אם אתם מפתחים כללים לתיקון תקלות. מידע נוסף זמין במאמר מה צריך לדעת על שגיאות מדיניות ועל טיפול בפגמים.

שגיאות בזמן ריצה

השגיאות האלה יכולות להתרחש כשהמדיניות מופעלת.

קוד שגיאה סטטוס HTTP סיבה תיקון
policies.resetquota.InvalidRLPolicy 500 מדיניות המכסה שצוינה ברכיב <Quota> של המדיניות בנושא איפוס המכסה לא מוגדרת בשרת ה-proxy של ה-API ולכן לא זמינה במהלך התהליך. הרכיב <Quota> הוא חובה ומזהה את המדיניות בנושא מכסות יעד שצריך לעדכן את המונה שלה באמצעות המדיניות 'איפוס מכסה'.
policies.resetquota.FailedToResolveAllowCountRef לא רלוונטי לא ניתן לפענח לערך את ההפניה למשתנה שמכיל את מספר ההרשאה ברכיב <Allow> של המדיניות. זהו רכיב חובה ומציין את הסכום להקטנה במונה.
policies.resetquota.FailedToResolveRLPolicy 500 לא ניתן לפענח את המשתנה שמוזכר במאפיין ref ברכיב <Quota>.

שגיאות בפריסה

השגיאות האלה יכולות להתרחש כשפורסים שרת proxy שכולל את המדיניות הזו.

שם השגיאה סיבה תיקון
InvalidCount אם ערך הספירה שצוין ברכיב <Allow> במדיניות איפוס המכסה אינו מספר שלם, הפריסה של שרת ה-proxy של ה-API תיכשל.

סכימות

נושאים קשורים

מדיניות בנושא מכסות