นโยบายการรีเซ็ตโควต้า

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

อะไร

ใช้เพื่อแก้ไขจํานวนคําขอที่เหลือซึ่งนโยบายโควต้าเป้าหมายอนุญาตแบบไดนามิก โดยปกติแล้ว คุณจะใช้นโยบายนี้เพื่อลดจำนวนโควต้าปัจจุบันของนโยบายโควต้าเป้าหมาย แทนที่จะต้องรอให้รีเซ็ตจำนวนโควต้า

เช่น นโยบายโควต้าเป้าหมายจำกัดคำขอนักพัฒนาแอปไว้ที่ 1, 000 รายการต่อสัปดาห์ โดย วันที่ 2 ของสัปดาห์ นักพัฒนาแอปก็ถึงขีดจำกัดนี้แล้ว ใช้นโยบายรีเซ็ตโควต้า ให้ลบ 500 ออกจากตัวนับโควต้าเพื่อให้คำขอเพิ่มได้อีก 500 รายการสำหรับส่วนที่เหลือของ ทั้งสัปดาห์ เมื่อสิ้นสุดสัปดาห์ ระบบจะรีเซ็ตนโยบายโควต้าและนักพัฒนาแอปจะกลับสู่ 1,000 รายการ ประจำสัปดาห์

โปรดดูนโยบายโควต้าสำหรับข้อมูลเพิ่มเติมเกี่ยวกับ นโยบายโควต้า โปรดดูที่นี่ด้วย โพสต์ชุมชนเกี่ยวกับการใช้นโยบายรีเซ็ตโควต้า

ตัวอย่าง

ตัวอย่างโค้ดนโยบายเหล่านี้แสดงวิธีรีเซ็ตตัวนับโควต้า

รีเซ็ตตัวนับเริ่มต้น

<ResetQuota name="resetQuota">
   <Quota name="MyQuotaPolicy">
      <Identifier name="_default">
         <Allow>100</Allow>
      </Identifier>
   </Quota>
</ResetQuota>

นโยบายการรีเซ็ตโควต้าจะระบุนโยบายโควต้าเป้าหมายโดยใช้แอตทริบิวต์ชื่อของแท็ก <โควต้า> ในตัวอย่างด้านบน นโยบาย MyBidPolicy เป็นเป้าหมาย

นโยบายการรีเซ็ตโควต้าทั้งหมดต้องใช้แท็ก &lt;Identifier&gt; เพื่อระบุพารามิเตอร์ ตัวนับในนโยบายโควต้าที่จะอัปเดต โดยค่าเริ่มต้น นโยบายโควต้าจะมีตัวนับเดียว เว้นแต่ว่านโยบายโควต้าจะมีแท็ก &lt;Identifier&gt; รวมอยู่ด้วย ในตัวอย่างนี้ นโยบายโควต้าเป้าหมายไม่ได้ใช้แท็ก &lt;Identifier&gt; คุณจึงระบุ แอตทริบิวต์ name เป็น _default

องค์ประกอบ &lt;Allow&gt; ระบุค่าที่ใช้ในการลดจำนวนโควต้าปัจจุบันในนโยบายเป้าหมาย ด้วยวิธีนี้ ตัวอย่างเช่น จำนวนโควต้าลดลง 100 รายการเพื่อให้มีคำขอเพิ่มโควต้าเป้าหมายได้อีก 100 รายการ เมื่อรีเซ็ตนโยบายโควต้าเป้าหมาย ระบบจะยกเลิกการเปลี่ยนแปลงนี้

ด้านล่างนี้เป็นคำจำกัดความของนโยบายโควต้าเป้าหมาย

<Quota name="MyQuotaPolicy">
  <Interval>5</Interval>
  <TimeUnit>hour</TimeUnit>
  <Allow count="100"/>
</Quota>

ใช้การอ้างอิง

<ResetQuota name="resetQuota">
   <Quota ref="request.header.quotapolicy">
      <Identifier name="_default">
         <Allow ref="request.header.allowquota" />
      </Identifier>
   </Quota>
</ResetQuota>

ในตัวอย่างนี้ คุณส่งชื่อของนโยบายโควต้าเป้าหมายและการเปลี่ยนแปลงโควต้าของนโยบาย เป็นส่วนหัวในคำขอ จากนั้นคุณอ้างอิงตัวแปรโฟลว์ที่มีตัวแปร ในนโยบายรีเซ็ตโควต้า

ระบุตัวระบุ

<ResetQuota name="resetQuota">
   <Quota name="QuotaPolicy">
      <Identifier ref="request.header.clientId">
         <Allow>100</Allow>
      </Identifier>
   </Quota>
</ResetQuota>

หากนโยบายโควต้าเป้าหมายระบุแท็ก &lt;Identifier&gt; คุณจะดำเนินการต่อไปนี้ได้ ระบุค่าเดียวกันลงในแท็ก &lt;Identifier&gt; ของโควต้าการรีเซ็ต นโยบายที่จะอัปเดตจำนวนโควต้าที่เฉพาะเจาะจง โปรดสังเกตว่าแท็ก &lt;Identifier&gt; ในปลายทาง นโยบายโควต้าด้านล่างตรงกับค่าที่ระบุไว้ในนโยบายการรีเซ็ตโควต้า

<Quota name="QuotaPolicy">
  <Identifier ref="request.header.clientId"/> 
  <Interval>5</Interval>
  <TimeUnit>hour</TimeUnit>
  <Allow count="100"/>
</Quota>

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

การอ้างอิงองค์ประกอบอธิบายองค์ประกอบและแอตทริบิวต์ของนโยบายรีเซ็ตโควต้า

<ResetQuota async="false" continueOnError="false" enabled="true" name="Reset-Quota-1">
   <DisplayName>Reset Quota 1</DisplayName>
   <Quota name="quotaName" ref="request.header.quotapolicy">
      <Identifier name="identifierName" ref="request.header.identifier">
         <Class ref="request.header.classIdentifier" />
         <Allow>100</Allow>
      </Identifier>
   </Quota>
</ResetQuota>

&lt;ResetQuota&gt; แอตทริบิวต์

<ResetQuota async="false" continueOnError="false" enabled="true" name="Reset-Quota-1"> 

ตารางต่อไปนี้อธิบายแอตทริบิวต์ทั่วไปในองค์ประกอบระดับบนสุดของนโยบายทั้งหมด

แอตทริบิวต์ คำอธิบาย ค่าเริ่มต้น การมีบุคคลอยู่
name

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

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

ไม่มี ต้องระบุ
continueOnError

ตั้งค่าเป็น false เพื่อแสดงผลข้อผิดพลาดเมื่อนโยบายล้มเหลว เป็นเรื่องปกติ พฤติกรรมสำหรับนโยบายส่วนใหญ่

ตั้งค่าเป็น true เพื่อให้ดำเนินการตามขั้นตอนได้อย่างต่อเนื่องแม้จะมีนโยบายแล้วก็ตาม ล้มเหลว

เท็จ ไม่บังคับ
enabled

ตั้งค่าเป็น true เพื่อบังคับใช้นโยบาย

ตั้งค่าเป็น false เพื่อปิดนโยบาย นโยบายจะไม่ บังคับใช้ แม้ว่าจะยังคงแนบกับขั้นตอน

จริง ไม่บังคับ
async

แอตทริบิวต์นี้เลิกใช้งานแล้ว

เท็จ เลิกใช้

&lt;DisplayName&gt; องค์ประกอบ

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

<DisplayName>Policy Display Name</DisplayName>
ค่าเริ่มต้น

ไม่มี

หากไม่ใส่องค์ประกอบนี้ ค่าของแอตทริบิวต์ name ของนโยบายจะเป็น

การมีบุคคลอยู่ ไม่บังคับ
ประเภท สตริง

&lt;Quota&gt; องค์ประกอบ

ระบุนโยบายโควต้าเป้าหมายที่ควรอัปเดตตัวนับ

<Quota name="quotaName"  ref="request.header.quotapolicy">
   <Identifier name="identifierName" ref="request.header.identifier">
      <Allow>100</Allow>
   </Identifier>
</Quota>
ค่าเริ่มต้น: ไม่มี
การตรวจหาบุคคล: ต้องระบุ
ประเภท: ไม่มี

Attributes

แอตทริบิวต์ คำอธิบาย ค่าเริ่มต้น การมีบุคคลอยู่
ชื่อ

ระบุชื่อนโยบายโควต้าเป้าหมาย

ไม่มี ไม่บังคับ
อ้างอิง ตัวแปรโฟลว์ที่มีชื่อของนโยบายโควต้าเป้าหมาย ถ้า มีการระบุทั้ง ref และ name ref ก็จะมีลำดับความสำคัญสูงสุด หาก ref มี ไม่แปลค่าขณะรันไทม์ ระบบจะใช้ name ไม่มี ไม่บังคับ

&lt;Quota&gt;/&lt;Identifier&gt; องค์ประกอบ

ตัวแปรที่ใช้ระบุตัวนับแบบไม่ซ้ำหากนโยบายโควต้าเป้าหมายระบุ แท็ก &lt;Identifier&gt;

<Quota name="quotaName">
   <Identifier name="identifierName" ref="request.header.identifier">
      <Allow>100</Allow>
   </Identifier>
</Quota>
ค่าเริ่มต้น: ไม่มี
การตรวจหาบุคคล: ต้องระบุ
ประเภท: สตริง

Attributes

แอตทริบิวต์ คำอธิบาย ค่าเริ่มต้น การมีบุคคลอยู่
ชื่อ

ระบุชื่อตัวระบุจำนวนในนโยบายโควต้าเป้าหมาย เพื่อขอโควต้า นโยบายที่ไม่ได้ใช้แท็ก &lt;Identifier&gt; ให้ระบุ _default

ไม่มี ไม่บังคับ
อ้างอิง

ตัวแปรโฟลว์ที่มีชื่อของตัวระบุจํานวนในโควต้าเป้าหมาย ถ้ามีการระบุทั้ง ref และ name ไว้ ref ก็จะมีลำดับความสำคัญสูงสุด หาก ref ไม่แปลค่า รันไทม์แล้วจะใช้ name

ไม่มี ไม่บังคับ

&lt;Quota&gt;/&lt;Identifier&gt;/&lt;Allow&gt; องค์ประกอบ

ระบุจำนวนที่จะลดตัวนับโควต้า คุณต้องระบุ &lt;Allow&gt; มิฉะนั้นนโยบายจะไม่ แก้ไขโควต้า

<Identifier name="identifierName" ref="request.header.identifier">
   <Allow ref="request.header.allowquota">100</Allow>
</Identifier>
ค่าเริ่มต้น: ไม่มี
การตรวจหาบุคคล: ต้องระบุ
ประเภท: จำนวนเต็ม

Attributes

แอตทริบิวต์ คำอธิบาย ค่าเริ่มต้น การมีบุคคลอยู่
อ้างอิง

ตัวแปรโฟลว์ที่มีการเปลี่ยนแปลงจำนวนโควต้าในนโยบายโควต้าเป้าหมาย

ไม่มี ไม่บังคับ

&lt;Quota&gt;/&lt;Identifier&gt;/&lt;Class&gt; องค์ประกอบ

ระบุคลาสที่อัปเดตตัวนับโควต้า สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ชั้นเรียนกับ นโยบายโควต้า โปรดดูโควต้า

<Identifier name="_default">
   <Class ref="request.header.classIdentifier">
     <Allow>200</Allow>
   </Class>
</Identifier>
ค่าเริ่มต้น: ไม่มี
การตรวจหาบุคคล: ไม่บังคับ
ประเภท: ไม่มี

Attributes

แอตทริบิวต์ คำอธิบาย ค่าเริ่มต้น การมีบุคคลอยู่
อ้างอิง

การอ้างอิงไปยังตัวแปรโฟลว์ที่มีคลาสโควต้าที่จะอัปเดต

ไม่มี ไม่บังคับ

ข้อมูลอ้างอิงข้อผิดพลาด

This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Cause Fix
policies.resetquota.InvalidRLPolicy 500 The Quota policy specified in the <Quota> element of the Reset Quota policy is not defined in the API proxy and thus is not available during the flow. The <Quota> element is mandatory and identifies the target Quota policy whose counter should be updated through the Reset Quota policy.
policies.resetquota.FailedToResolveAllowCountRef N/A The reference to the variable containing the allow count in the <Allow> element of the policy cannot be resolved to a value. This element is mandatory and specifies the amount to decrease the quota counter.
policies.resetquota.FailedToResolveRLPolicy 500 The variable referenced by the ref attribute in the <Quota> element cannot be resolved.

Deployment errors

These errors can occur when you deploy a proxy containing this policy.

Error name Cause Fix
InvalidCount If the count value specified in the <Allow> element of the Reset Quota Policy is not an integer, then the deployment of the API proxy fails.

สคีมา

หัวข้อที่เกี่ยวข้อง

นโยบายโควต้า