นโยบาย MonetizationLimitsCheck

คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่ เอกสารประกอบเกี่ยวกับ Apigee X.
ข้อมูล

ภาพรวม

นโยบาย MonetizationLimitsCheck ช่วยให้คุณสามารถบังคับใช้ขีดจำกัดการสร้างรายได้กับการเรียก API โดยนักพัฒนาแอป

ตัวอย่างกรณีที่นโยบายถูกเรียกใช้มีดังนี้

  • หากนักพัฒนาแอปที่เข้าถึง API ที่สร้างรายได้ไม่ได้สมัครใช้บริการ ผลิตภัณฑ์ API ที่เชื่อมโยง
  • บัญชีนักพัฒนาแอปมียอดคงเหลือไม่เพียงพอ
  • นักพัฒนาแอปมีปริมาณธุรกรรมเกินขีดจำกัด

โปรดดูข้อมูลเกี่ยวกับวิธีแนบนโยบายกับพร็อกซี API ที่ บังคับใช้ขีดจำกัดการสร้างรายได้ในพร็อกซี API

องค์ประกอบ <MonetizationLimitsCheck>

ระบุนโยบาย MonetizationLimitsCheck

ค่าเริ่มต้น ไม่มี
ต้องระบุหรือไม่ ต้องระบุ
ประเภท ประเภทที่ซับซ้อน
องค์ประกอบระดับบนสุด ไม่มี
องค์ประกอบย่อย <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>

ตัวอย่าง

ตัวอย่างต่อไปนี้แสดงคำจำกัดความของนโยบาย 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>

This element has the following attributes that are common to all policies:

Attribute Default Required? Description
name N/A Required

The internal name of the policy. The value of the name attribute can contain letters, numbers, spaces, hyphens, underscores, and periods. This value cannot exceed 255 characters.

Optionally, use the <DisplayName> element to label the policy in the management UI proxy editor with a different, natural-language name.

continueOnError false Optional Set to "false" to return an error when a policy fails. This is expected behavior for most policies. Set to "true" to have flow execution continue even after a policy fails.
enabled true Optional Set to "true" to enforce the policy. Set to "false" to "turn off" the policy. The policy will not be enforced even if it remains attached to a flow.
async   false Deprecated This attribute is deprecated.

การอ้างอิงองค์ประกอบย่อย

ส่วนนี้จะอธิบายองค์ประกอบย่อยของ <MonetizationLimitsCheck>

<DisplayName>

ใช้ร่วมกับแอตทริบิวต์ name เพื่อติดป้ายกำกับนโยบายใน เครื่องมือแก้ไขพร็อกซีของ UI การจัดการด้วยชื่ออื่นที่ฟังดูเป็นธรรมชาติมากขึ้น

องค์ประกอบ <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 แตกต่างจากการตั้งค่าองค์ประกอบ <MonetizationLimitsCheck> continueOnError ถึง 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 Apigee จะใช้ชื่อผลิตภัณฑ์ของ API ก็ต่อเมื่อ แพ็กเกจราคาที่เกี่ยวข้องสำหรับผลิตภัณฑ์และทำการตรวจสอบขีดจำกัดการสร้างรายได้

ค่าเริ่มต้น ไม่มี
ต้องระบุหรือไม่ ไม่บังคับ
ประเภท ประเภทที่ซับซ้อน
องค์ประกอบระดับบนสุด <MonetizationLimitsCheck>
องค์ประกอบย่อย <Product>

องค์ประกอบ <Variables> ใช้ไวยากรณ์ต่อไปนี้

ไวยากรณ์

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

ตัวอย่าง

ตัวอย่างต่อไปนี้ได้รับชื่อผลิตภัณฑ์ API จากตัวแปรโฟลว์ที่กำหนดเอง myproductvar.name ที่อยู่ในขั้นตอนพร็อกซี API ของคุณ

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

คุณตั้งค่าตัวแปรโฟลว์ที่กำหนดเองได้โดยใช้นโยบาย เช่น AssignMessage หรือ JavaScript

<Product>

ระบุตัวแปรที่มีชื่อผลิตภัณฑ์ API

ค่าเริ่มต้น ไม่มี
ต้องระบุหรือไม่ ไม่บังคับ
ประเภท สตริง
องค์ประกอบระดับบนสุด <Variables>
องค์ประกอบย่อย ไม่มี

องค์ประกอบ <Product> ใช้ไวยากรณ์ต่อไปนี้

ไวยากรณ์

<Product>VARIABLE_NAME</Product>

ตัวอย่าง

ตัวอย่างต่อไปนี้ได้รับชื่อผลิตภัณฑ์ API จากตัวแปรโฟลว์ที่กำหนดเอง myproductvar.name ที่อยู่ในขั้นตอนพร็อกซี API ของคุณ

<Product>myproductvar.name</Product>

คุณตั้งค่าตัวแปรโฟลว์ที่กำหนดเองได้โดยใช้นโยบาย เช่น AssignMessage หรือ JavaScript

<FaultResponse>

กำหนดข้อความตอบกลับที่ส่งคืนไปยังไคลเอ็นต์ที่ส่งคำขอหากเกิดข้อผิดพลาด คุณปรับแต่งคำตอบได้ ตามข้อกำหนดของคุณ ดูข้อมูลเพิ่มเติมเกี่ยวกับ และองค์ประกอบย่อยทั้งหมด โปรดดูที่ FaultResponse

ตัวแปรโฟลว์

หากคุณตั้งค่าองค์ประกอบ <MonetizationLimitsCheck> แอตทริบิวต์ ContinueOnError เป็น "จริง" ไม่มีการแสดงข้อผิดพลาด ในกรณีนี้ ค่า ตัวแปรโฟลว์, mint.limitsViolated, mint.isDeveloperSuspended และ ระบบจะตั้งค่า mint.limitsPolicyError โดยอัตโนมัติ ตัวแปรเหล่านี้สามารถใช้เพื่อ ดำเนินการจัดการข้อยกเว้นเพิ่มเติม หากจำเป็น