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

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

อะไร

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

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

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

ตัวอย่าง

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

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

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

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

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

องค์ประกอบ <Allow> จะระบุค่าที่ใช้เพื่อลดจำนวนโควต้าปัจจุบันในนโยบายเป้าหมาย ในตัวอย่างนี้ จำนวนโควต้าจะลดลง 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>

หากนโยบายโควต้าเป้าหมายระบุแท็ก <Identifier> คุณสามารถ ระบุค่าเดียวกันกับแท็ก <Identifier> ของนโยบายโควต้าที่รีเซ็ตเพื่ออัปเดตจำนวนโควต้าที่เฉพาะเจาะจง โปรดสังเกตว่าแท็ก <Identifier> ในนโยบายโควต้าเป้าหมายด้านล่างตรงกับค่าที่ระบุในนโยบายโควต้าที่รีเซ็ต

<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>

แอตทริบิวต์ <ResetQuota>

<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 ของนโยบายจะเป็น

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

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

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

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

แอตทริบิวต์

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

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

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

องค์ประกอบ <Quota>/<Identifier>

ตัวแปรที่ใช้เพื่อระบุตัวนับที่ไม่ซ้ำกันถ้านโยบายโควต้าเป้าหมายระบุ แท็ก <Identifier>

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

แอตทริบิวต์

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

ระบุชื่อของตัวระบุการนับในนโยบายโควต้าเป้าหมาย สำหรับนโยบายโควต้าที่ไม่ได้ใช้แท็ก <Identifier> ให้ระบุ _default

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

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

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

องค์ประกอบ <Quota>/<Identifier>/<Allow>

ระบุจำนวนที่จะลดตัวนับโควต้า คุณต้องระบุ <Allow> มิเช่นนั้น นโยบายจะไม่ แก้ไขโควต้า

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

แอตทริบิวต์

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

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

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

องค์ประกอบ <Quota>/<Identifier>/<Class>

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

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

แอตทริบิวต์

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

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

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

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

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

ข้อผิดพลาดเกี่ยวกับรันไทม์

ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อนโยบายทำงาน

รหัสข้อผิดพลาด สถานะ HTTP สาเหตุ แก้ไข
policies.resetquota.InvalidRLPolicy 500 นโยบายโควต้าที่ระบุในองค์ประกอบ <Quota> ของนโยบายการรีเซ็ตโควต้าไม่ได้กำหนดในพร็อกซี API จึงไม่พร้อมใช้งานระหว่างขั้นตอน องค์ประกอบ <Quota> เป็นองค์ประกอบที่จำเป็นและระบุนโยบายโควต้าเป้าหมายที่ควรอัปเดตตัวนับผ่านนโยบายการรีเซ็ตโควต้า
policies.resetquota.FailedToResolveAllowCountRef ไม่มีข้อมูล การอ้างอิงไปยังตัวแปรที่มีจำนวนที่อนุญาตในองค์ประกอบ <Allow> ของนโยบายไม่สามารถแปลงเป็นค่าได้ องค์ประกอบนี้เป็นสิ่งที่จำเป็นและระบุจำนวนที่จะลดตัวนับโควต้า
policies.resetquota.FailedToResolveRLPolicy 500 ระบบจับคู่ตัวแปรที่แอตทริบิวต์ ref อ้างอิงในองค์ประกอบ <Quota> ไม่ได้

ข้อผิดพลาดในการทำให้ใช้งานได้

ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อคุณใช้พร็อกซีที่มีนโยบายนี้

ชื่อข้อผิดพลาด สาเหตุ แก้ไข
InvalidCount หากค่าการนับที่ระบุในองค์ประกอบ <Allow> ของนโยบายการรีเซ็ตโควต้าไม่ใช่จำนวนเต็ม การทำให้พร็อกซี API ใช้งานได้จะไม่สำเร็จ

สคีมา

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

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