המדיניות בנושא MonetizeLimitsCheck

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

סקירה כללית

המדיניות MonetizeLimitsCheck מאפשרת לאכוף הגבלות מונטיזציה על הקריאות ל-API שמתבצעות על ידי מפתחי האפליקציה.

הנה כמה מהמקרים שבהם המדיניות מופעלת:

  • אם מפַתח אפליקציה שמשתמש ב-API המייצר הכנסות לא רכש מינוי למוצר ה-API המשויך
  • היתרה בחשבון של המפתח לא מספיקה.
  • המפתח חרג ממגבלת נפח העסקאות.

במאמר אכיפת מגבלות מונטיזציה בשרתי proxy של API מוסבר איך לצרף את המדיניות לשרת ה-API של ה-API.

רכיב <MonetizationLimitsCheck>

מציינת את המדיניות MonetizeLimitsCheck.

ערך ברירת המחדל לא רלוונטי
חובה? חובה
סוג סוג מרוכב
רכיב הורה לא רלוונטי
רכיבי צאצא <DisplayName>
<FaultResponse>
<IgnoreUnresolvedVariables>
<Variables>

בטבלה הבאה מפורטים רכיבי הצאצא של <MonetizationLimitsCheck>:

רכיב צאצא חובה? תיאור
<DisplayName> אופציונלי שם מותאם אישית למדיניות.
<FaultResponse> אופציונלי מציינת את הודעת התגובה שמוחזרת ללקוח המבקש כשהתקלה גוברת.
<IgnoreUnresolvedVariables> אופציונלי המדיניות הזו קובעת אם העיבוד יופסק כשיש משתנה לא מזוהה.
<Variables> אופציונלי כאן מזינים את משתני התהליך לבדיקת מגבלות המונטיזציה.

הרכיב <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>

דוגמה

בדוגמה הבאה מוצגת הגדרת המדיניות MonetizeLimitsCheck:

<?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 נתקל במשתנה שלא נפתר.

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

ערך ברירת המחדל לא רלוונטי
חובה? אופציונלי
סוג סוג מרוכב
רכיב הורה <MonetizationLimitsCheck>
רכיבי צאצא <Product>

הרכיב <Variables> משתמש בתחביר הבא:

תחביר

<Variables>
    <Product>VARIABLE_NAME</Product>
</Variables>

דוגמה

בדוגמה הבאה מוצג שם המוצר של ה-API ממשתנה הזרימה המותאם אישית myproductvar.name, שנמצא בתהליך של שרת ה-API של שרת ה-API.

<Variables>
    <Product>myproductvar.name</Product>
</Variables>

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

<Product>

מציין את המשתנה עם שם המוצר של ה-API.

ערך ברירת המחדל לא רלוונטי
חובה? אופציונלי
סוג מחרוזת
רכיב הורה <Variables>
רכיבי צאצא ללא

הרכיב <Product> משתמש בתחביר הבא:

תחביר

<Product>VARIABLE_NAME</Product>

דוגמה

בדוגמה הבאה מוצג שם המוצר של ה-API ממשתנה הזרימה המותאם אישית myproductvar.name, שנמצא בתהליך של שרת ה-API של שרת ה-API.

<Product>myproductvar.name</Product>

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

<FaultResponse>

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

משתני זרימה

אם מגדירים את המאפיין ContinueOnError של הרכיב <MonetizationLimitsCheck> כ-True, לא נוצרת שגיאה. במקרה הזה, משתני הזרימה mint.limitsViolated, mint.isDeveloperSuspended ו-mint.limitsPolicyError מוגדרים באופן אוטומטי. אפשר להשתמש במשתנים האלה כדי לבצע טיפול נוסף בחריגות במקרה הצורך.