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