אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X. מידע
סקירה כללית
המדיניות MonetizationLimitsCheck מאפשרת לאכוף מגבלות על מונטיזציה בקריאות ל-API שמבצע מפתח האפליקציה.
המדיניות מופעלת במקרים הבאים:
- אם מפתח אפליקציה שמקבל גישה ל-API עם מונטיזציה לא רכש מינוי למוצר ה-API המשויך
- אין מספיק יתרה בחשבון של המפתח.
- החריגה ממגבלת נפח העסקאות.
מידע על צירוף המדיניות לשרת proxy ל-API זמין במאמר החלת מגבלות מונטיזציה על שרתי proxy ל-API.
רכיב <MonetizationLimitsCheck>
מציין את המדיניות MonetizationLimitsCheck.
| ערך ברירת מחדל | לא רלוונטי |
| חובה? | חובה |
| סוג | סוג מורכב |
| רכיב אב | לא רלוונטי |
| רכיבי צאצא |
<DisplayName><FaultResponse><IgnoreUnresolvedVariables><Variables> |
בטבלה הבאה מפורטים רכיבי המשנה של <MonetizationLimitsCheck>:
| רכיב צאצא | חובה? | תיאור |
|---|---|---|
<DisplayName> |
אופציונלי | שם מותאם אישית למדיניות. |
<FaultResponse> |
אופציונלי | מציין את הודעת התשובה שמוחזרת ללקוח ששלח את הבקשה כשהשגיאה מתרחשת. |
<IgnoreUnresolvedVariables> |
אופציונלי | קובעת אם העיבוד ייפסק כשנתקלים במשתנה לא פתור. |
<Variables> |
אופציונלי | מציינים את משתני ה-Flow שצריך לבדוק כדי לראות אם חל עליהם מגבלות מונטיזציה. |
רכיב <MonetizationLimitsCheck> משתמש בתחביר הבא:
תחביר
<?xml version="1.0" encoding="UTF-8"?> <MonetizationLimitsCheck async="false" continueOnError="false" enabled="true" name="POLICY_NAME"> <DisplayName>DISPLAY_NAME</DisplayName> <IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables> <Variables> <Product>VARIABLE_NAME</Product> </Variables> <FaultResponse> <Set> <Payload contentType="text/xml"> <error> <messages> <message>MESSAGE_TEXT</message> <message>MESSAGE_TEXT</message> </messages> </error> </Payload> <StatusCode>HTTP_STATUS</StatusCode> <ReasonPhrase>REASON_TEXT</ReasonPhrase> </Set> </FaultResponse> </MonetizationLimitsCheck>
דוגמה
בדוגמה הבאה מוצגת הגדרת המדיניות MonetizationLimitsCheck:
<?xml version="1.0" encoding="UTF-8"?> <MonetizationLimitsCheck async="false" continueOnError="false" enabled="true" name="Monetization-Limits-Check"> <DisplayName>Monetization Limits Check</DisplayName> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <Variables> <Product>myproductvar.name</Product> </Variables> <FaultResponse> <Set> <Payload contentType="text/xml"> <error> <messages> <message>Developer has reached usage quota</message> <message>Is Developer Suspended - {monetizationLimits.isDeveloperSuspended} </message> </messages> </error> </Payload> <StatusCode>403</StatusCode> <ReasonPhrase>Forbidden</ReasonPhrase> </Set> </FaultResponse> </MonetizationLimitsCheck>
לרכיב הזה יש את המאפיינים הבאים, המשותפים לכל כללי המדיניות:
| מאפיין | ברירת מחדל | חובה? | תיאור |
|---|---|---|---|
name |
לא רלוונטי | נדרש |
השם הפנימי של המדיניות. הערך של המאפיין אפשר להשתמש ברכיב |
continueOnError |
false | אופציונלי | צריך להגדיר את הערך 'False' כדי להחזיר שגיאה כשהמדיניות נכשלת. זו התנהגות צפויה ברוב סוגי המדיניות. הערך של הפרמטר הוא TRUE כדי שביצוע הפעולות יתבצע גם אחרי שמדיניות תיכשל. |
enabled |
true | אופציונלי | כדי לאכוף את המדיניות צריך להגדיר את הערך True. מגדירים את המדיניות כ-"false" כדי "להשבית" את המדיניות. המדיניות הזו לא תיאכף גם אם היא תצורף לתהליך. |
async |
false | הוצא משימוש | המאפיין הזה הוצא משימוש. |
הפניה לרכיב צאצא
בקטע הזה מתוארים רכיבי הבן של<MonetizationLimitsCheck>.
<DisplayName>
אפשר להשתמש במאפיין הזה בנוסף למאפיין name כדי לתת למדיניות שם אחר, שנשמע יותר טבעי, ולתייג אותה בכלי לעריכת ה-proxy בממשק ניהול.
הרכיב <DisplayName> משותף לכל סוגי המדיניות.
| ערך ברירת המחדל | לא רלוונטי |
| חובה? | אופציונלי. אם לא מציינים את <DisplayName>, המערכת משתמשת בערך של מאפיין name של המדיניות |
| סוג | מחרוזת |
| רכיב אב | <PolicyElement> |
| רכיבי צאצא | ללא |
התחביר של רכיב <DisplayName> הוא:
תחביר
<PolicyElement> <DisplayName>policy_display_name</DisplayName> ... </PolicyElement>
דוגמה
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
לרכיב <DisplayName> אין מאפיינים או רכיבי צאצא.
<IgnoreUnresolvedVariables>
ההגדרה הזו קובעת אם העיבוד של המדיניות צריך להיפסק כש-Apigee נתקל במשתנה לא פתור.
| ערך ברירת מחדל | True |
| חובה? | אופציונלי |
| סוג | בוליאני |
| רכיב אב |
<MonetizationLimitsCheck> |
| רכיבי צאצא | ללא |
כדי להתעלם ממשתנים שלא נפתרו ולהמשיך בעיבוד, מגדירים את הערך ל-true;
אחרת false. ערך ברירת המחדל הוא true.
ההגדרה של <IgnoreUnresolvedVariables> ל-true שונה מההגדרה של continueOnError של הרכיב <MonetizationLimitsCheck> ל-true. אם מגדירים את continueOnError ל-true, המערכת של Apigee מתעלמת לא רק משגיאות של משתנים, אלא מכל השגיאות.
רכיב <IgnoreUnresolvedVariables> משתמש בתחביר הבא:
תחביר
<IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>
דוגמה
בדוגמה הבאה, הערך של <IgnoreUnresolvedVariables> מוגדר ל-false:
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<Variables>
מציין את משתני הזרימה שמהם רוצים לאחזר את שמות הישויות או המשאבים במהלך הפעלת המדיניות.
אפשר לציין רק את רכיב <Product> בתוך רכיב <Variables>. Apigee מקבל את שם מוצר ה-API ממשתנה הזרימה שצוין ברכיב <Product>. אם לא מציינים את רכיב <Variables>, Apigee מקבל כברירת מחדל את שם מוצר ה-API מהמשתנה apiproduct.name context. באמצעות שם מוצר ה-API, Apigee מקבל את תוכנית התמחור המתאימה למוצר ומבצע את הבדיקה של מגבלות המונטיזציה.
| ערך ברירת מחדל | לא רלוונטי |
| חובה? | אופציונלי |
| סוג | סוג מורכב |
| רכיב אב |
<MonetizationLimitsCheck> |
| רכיבי צאצא |
<Product> |
רכיב <Variables> משתמש בתחביר הבא:
תחביר
<Variables>
<Product>VARIABLE_NAME</Product>
</Variables>דוגמה
בדוגמה הבאה מוצג איך מקבלים את שם המוצר ב-API מהמשתנה myproductvar.name custom flow
שקיים בתהליך של ה-API proxy.
<Variables> <Product>myproductvar.name</Product> </Variables>
אפשר להגדיר משתני זרימה מותאמים אישית באמצעות כללי מדיניות כמו AssignMessage או JavaScript.
<Product>
מציין את המשתנה שכולל את שם מוצר ה-API.
| ערך ברירת מחדל | לא רלוונטי |
| חובה? | אופציונלי |
| סוג | מחרוזת |
| רכיב אב |
<Variables> |
| רכיבי צאצא | ללא |
רכיב <Product> משתמש בתחביר הבא:
תחביר
<Product>VARIABLE_NAME</Product>
דוגמה
בדוגמה הבאה מוצג איך מקבלים את שם המוצר ב-API ממשתנה זרימה myproductvar.name custom flow
שקיים בתהליך של proxy ל-API.
<Product>myproductvar.name</Product>
אפשר להגדיר משתני זרימה מותאמים אישית באמצעות כללי מדיניות כמו AssignMessage או JavaScript.
<FaultResponse>
ההגדרה הזו מגדירה את הודעת התשובה שמוחזרת ללקוח ששלח את הבקשה אם מתרחשת שגיאה. אתם יכולים להתאים אישית את הודעות התשובה בהתאם לדרישות שלכם. מידע נוסף על הרכיב ועל כל רכיבי הצאצא שלו זמין במאמר FaultResponse.
משתני זרימה
אם מגדירים את המאפיין ContinueOnError של הרכיב <MonetizationLimitsCheck> כ-True, לא נוצרת שגיאה. במקרה כזה, משתני התהליך mint.limitsViolated, mint.isDeveloperSuspended ו-mint.limitsPolicyError מוגדרים באופן אוטומטי. אפשר להשתמש במשתנים האלה כדי לבצע טיפול נוסף בחריגים, אם נדרש.