MonetizationLimitsCheck policy

אתם צופים במסמכי התיעוד של 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 לא רלוונטי נדרש

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

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

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 מוגדרים באופן אוטומטי. אפשר להשתמש במשתנים האלה כדי לבצע טיפול נוסף בחריגים, אם נדרש.