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

คุณกำลังดูเอกสารประกอบของ 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>

นโยบายการรีเซ็ตโควต้าจะระบุนโยบายโควต้าเป้าหมายโดยใช้แอตทริบิวต์ 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 async="false" continueOnError="false" enabled="true" name="Reset-Quota-1"> 

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

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

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

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

ไม่มีข้อมูล จำเป็น
continueOnError

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

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

false ไม่บังคับ
enabled

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

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

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

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

false เลิกใช้

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

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

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

ไม่มีข้อมูล

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

การมีบุคคลอยู่ ไม่บังคับ
Type สตริง

องค์ประกอบ <โควต้า>

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

<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 ไม่มีข้อมูล ไม่บังคับ

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

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

<Quota name="quotaName">
   <Identifier name="identifierName" ref="request.header.identifier">
      <Allow>100</Allow>
   </Identifier>
</Quota>
ค่าเริ่มต้น: ไม่มีข้อมูล
สถานที่ตั้ง: จำเป็น
ประเภท: สตริง

Attributes

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

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

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

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

ไม่มีข้อมูล ไม่บังคับ

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

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

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

Attributes

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

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

ไม่มีข้อมูล ไม่บังคับ

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

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

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

Attributes

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

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

ไม่มีข้อมูล ไม่บังคับ

การอ้างอิงข้อผิดพลาด

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

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

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

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

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

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

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

สคีมา

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

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