นโยบาย MonetizationLimitsCheck

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

ภาพรวม

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

ตัวแปรโฟลว์

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