นโยบาย 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>

องค์ประกอบนี้มีแอตทริบิวต์ต่อไปนี้ซึ่งมักใช้กับนโยบายทั้งหมด

แอตทริบิวต์ ค่าเริ่มต้น จําเป็นไหม คำอธิบาย
name ไม่มีข้อมูล จำเป็น

ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ name มีตัวอักษร ตัวเลข ช่องว่าง ขีดกลาง ขีดล่าง และจุดได้ ค่านี้ต้องมีความยาวไม่เกิน 255 อักขระ

ใช้องค์ประกอบ <DisplayName> เพื่อติดป้ายกํากับนโยบายในตัวแก้ไขพร็อกซี UI การจัดการด้วยชื่อภาษาอื่นที่เป็นธรรมชาติได้

continueOnError เท็จ ไม่บังคับ ตั้งค่าเป็น "false" เพื่อแสดงข้อผิดพลาดเมื่อนโยบายล้มเหลว ซึ่งเป็นลักษณะการทํางานที่คาดหวังตามนโยบายส่วนใหญ่ ตั้งค่าเป็น "จริง" เพื่อดําเนินการโฟลว์ข้อมูลต่อไป แม้ว่านโยบายจะล้มเหลวก็ตาม
enabled จริง ไม่บังคับ ตั้งค่าเป็น "true" เพื่อบังคับใช้นโยบาย ตั้งค่าเป็น "false" เพื่อ "ปิด" นโยบาย ระบบจะไม่บังคับใช้นโยบายแม้ว่าจะยังคงแนบไปกับโฟลว์
async   เท็จ เลิกใช้ แอตทริบิวต์นี้เลิกใช้งานแล้ว

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

ส่วนนี้อธิบายองค์ประกอบย่อยของ <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 แตกต่างจากการตั้งค่า 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

<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

ตัวแปรโฟลว์

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