คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
นโยบาย Spike Arrest จะป้องกันการรับส่งข้อมูลที่เพิ่มขึ้นอย่างรวดเร็วด้วยองค์ประกอบ <Rate>
ช่วงเวลานี้
จะจำกัดจำนวนคำขอที่พร็อกซี API ประมวลผลและส่งไปยังแบ็กเอนด์
เพื่อป้องกันความล่าช้าของประสิทธิภาพการทำงานและช่วงพัก
องค์ประกอบ <SpikeArrest>
กำหนดนโยบาย Spike Arrest
ค่าเริ่มต้น | ดูแท็บนโยบายเริ่มต้นด้านล่าง |
ต้องระบุหรือไม่ | ไม่บังคับ |
ประเภท | ซับซ้อน ออบเจ็กต์ |
องค์ประกอบระดับบนสุด | ไม่มี |
องค์ประกอบย่อย |
<Identifier> <MessageWeight> <Rate> (ต้องระบุ)<UseEffectiveCount> |
ไวยากรณ์
องค์ประกอบ <SpikeArrest>
ใช้ไวยากรณ์ต่อไปนี้
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <DisplayName>display_name</DisplayName> <Properties/> <Identifier ref="flow_variable"/> <MessageWeight ref="flow_variable"/> <Rate ref="flow_variable">rate[pm|ps]</Rate> <UseEffectiveCount>[false|true]</UseEffectiveCount> </SpikeArrest>
นโยบายเริ่มต้น
ตัวอย่างต่อไปนี้แสดงการตั้งค่าเริ่มต้นเมื่อคุณเพิ่มนโยบาย การจับกุมใน ใน Edge UI ดังนี้
<SpikeArrest async="false" continueOnError="false" enabled="true" name="Spike-Arrest-1"> <DisplayName>Spike Arrest-1</DisplayName> <Properties/> <Identifier ref="request.header.some-header-name"/> <MessageWeight ref="request.header.weight"/> <Rate>30ps</Rate> <UseEffectiveCount>true</UseEffectiveCount> </SpikeArrest>
องค์ประกอบนี้มีแอตทริบิวต์ต่อไปนี้ซึ่งมักใช้กับนโยบายทั้งหมด
แอตทริบิวต์ | ค่าเริ่มต้น | จําเป็นไหม | คำอธิบาย |
---|---|---|---|
name |
ไม่มีข้อมูล | จำเป็น |
ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ ใช้องค์ประกอบ |
continueOnError |
เท็จ | ไม่บังคับ | ตั้งค่าเป็น "false" เพื่อแสดงข้อผิดพลาดเมื่อนโยบายล้มเหลว ซึ่งเป็นลักษณะการทํางานที่คาดหวังตามนโยบายส่วนใหญ่ ตั้งค่าเป็น "จริง" เพื่อดําเนินการโฟลว์ข้อมูลต่อไป แม้ว่านโยบายจะล้มเหลวก็ตาม |
enabled |
จริง | ไม่บังคับ | ตั้งค่าเป็น "true" เพื่อบังคับใช้นโยบาย ตั้งค่าเป็น "false" เพื่อ "ปิด" นโยบาย ระบบจะไม่บังคับใช้นโยบายแม้ว่าจะยังคงแนบไปกับโฟลว์ |
async |
เท็จ | เลิกใช้ | แอตทริบิวต์นี้เลิกใช้งานแล้ว |
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงวิธีการใช้นโยบาย Spike Arrest บางส่วน
ตัวอย่างที่ 1
ตัวอย่างต่อไปนี้กำหนดอัตราเป็น 5 ต่อวินาที
<SpikeArrest name="Spike-Arrest-1"> <Rate>5ps</Rate> </SpikeArrest>
นโยบายนี้ปรับอัตราให้เป็นคำขอเดียวซึ่งอนุญาตทุก 200 มิลลิวินาที (1000/5)
ตัวอย่างที่ 2
ตัวอย่างต่อไปนี้กำหนดอัตราเป็น 12 ต่อนาที
<SpikeArrest name="Spike-Arrest-1"> <Rate>12pm</Rate> </SpikeArrest>
นโยบายตัวอย่างนี้ปรับอัตราคำขอให้เป็น 1 คำขอที่อนุญาตทุกๆ 5 วินาที (60/12)
ตัวอย่างที่ 3
ตัวอย่างต่อไปนี้จำกัดคำขอไว้ที่ 12 รายการต่อนาที (อนุญาตคำขอ 1 รายการทุกๆ 5 รายการ วินาที หรือ 60/12):
<SpikeArrest name="Spike-Arrest-1"> <Rate>12pm</Rate> <Identifier ref="client_id" /> <MessageWeight ref="request.header.weight" /> </SpikeArrest>
นอกจากนี้ องค์ประกอบ <MessageWeight>
ยังยอมรับค่าที่กำหนดเอง (พารามิเตอร์
weight
) ที่ปรับน้ำหนักข้อความสำหรับแอปหรือไคลเอ็นต์ที่เจาะจง ช่วงเวลานี้
ช่วยให้ควบคุมการควบคุมได้มากขึ้นสำหรับเอนทิตีที่ระบุด้วย
<Identifier>
ตัวอย่าง 4
ตัวอย่างต่อไปนี้บอกให้ Spike Arrest มองหาค่ารันไทม์ที่ตั้งค่าผ่านทาง
คำขอที่ส่งผ่านเป็นตัวแปรโฟลว์ request.header.runtime_rate
<SpikeArrest name="Spike-Arrest-1"> <Rate ref="request.header.runtime_rate" /> </SpikeArrest>
ค่าของตัวแปรโฟลว์ต้องอยู่ในรูปแบบ intpm
หรือ
intps
หากต้องการลองใช้ตัวอย่างนี้ ให้ดำเนินการตามคำขอดังต่อไปนี้:
curl http://myorg-myenv.apigee.net/price -H 'runtime_rate:30ps'
การอ้างอิงองค์ประกอบย่อย
ส่วนนี้จะอธิบายองค์ประกอบย่อยของ <SpikeArrest>
<DisplayName>
ใช้เพิ่มเติมจากแอตทริบิวต์ name
เพื่อติดป้ายกำกับนโยบายใน
เครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่ฟังดูเป็นธรรมชาติมากขึ้น
องค์ประกอบ <DisplayName>
มีอยู่ในนโยบายทั้งหมด
ค่าเริ่มต้น | ไม่มี |
ต้องระบุหรือไม่ | ไม่บังคับ หากคุณไม่ใส่ <DisplayName> ค่าของแอตทริบิวต์
ใช้แอตทริบิวต์ name ของนโยบาย |
ประเภท | สตริง |
องค์ประกอบระดับบนสุด | <PolicyElement> |
องค์ประกอบย่อย | ไม่มี |
องค์ประกอบ <DisplayName>
ใช้ไวยากรณ์ต่อไปนี้
ไวยากรณ์
<PolicyElement> <DisplayName>policy_display_name</DisplayName> ... </PolicyElement>
ตัวอย่าง
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
องค์ประกอบ <DisplayName>
ไม่มีแอตทริบิวต์หรือองค์ประกอบย่อย
<Identifier>
ให้คุณเลือกวิธีจัดกลุ่มคำขอเพื่อให้ใช้นโยบาย Spike Arrest ได้โดยอิงตาม ไคลเอ็นต์ ตัวอย่างเช่น คุณสามารถจัดกลุ่มคำขอตามรหัสนักพัฒนาซอฟต์แวร์ ซึ่งในกรณีนี้คำขอแต่ละรายการ คำขอของนักพัฒนาซอฟต์แวร์จะนับรวมอยู่ในอัตราการจับกุมของตนเองเท่านั้น ไม่ใช่คำขอทั้งหมดที่ส่งไปยัง พร็อกซี
ใช้ร่วมกับองค์ประกอบ <MessageWeight>
เพื่อข้อมูลที่ละเอียดยิ่งขึ้น
การควบคุมการควบคุมคำขอ
หากปล่อยองค์ประกอบ <Identifier>
ว่างไว้ ระบบจะบังคับใช้ขีดจำกัดอัตราคำขอเดียวสำหรับคำขอทั้งหมด
ลงในพร็อกซี API นั้น
ค่าเริ่มต้น | ไม่มี |
ต้องระบุหรือไม่ | ไม่บังคับ |
ประเภท | สตริง |
องค์ประกอบระดับบนสุด |
<SpikeArrest>
|
องค์ประกอบย่อย | ไม่มี |
ไวยากรณ์
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Identifier ref="flow_variable"/> </SpikeArrest>
ตัวอย่างที่ 1
ตัวอย่างต่อไปนี้ใช้นโยบายการจับจองช่วงที่เพิ่มขึ้นตามรหัสนักพัฒนาซอฟต์แวร์
<SpikeArrest name="Spike-Arrest-1"> <Identifier ref="developer.id"/> <Rate>42pm</Rate/> </SpikeArrest>
ตารางต่อไปนี้อธิบายแอตทริบิวต์ของ <Identifier>
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ |
---|---|---|---|
ref |
ระบุตัวแปรที่ Spike Arrest จัดกลุ่มคำขอที่เข้ามาใหม่ คุณสามารถใช้ตัวแปรโฟลว์เพื่อระบุไคลเอ็นต์ที่ไม่ซ้ำกัน เช่น ตัวแปรที่ใช้ได้กับพารามิเตอร์ นโยบาย VerifyAPIKey นอกจากนี้ คุณยังตั้งค่าตัวแปรที่กำหนดเองได้โดยใช้ นโยบาย JavaScript หรือนโยบาย AssignMessage | ไม่มี | ต้องระบุ |
นอกจากนี้ ระบบยังกล่าวถึงองค์ประกอบนี้ในโพสต์ชุมชน Apigee ด้วย http://community.apigee.com/questions/2807/how-does-the-edge-quota-policy-work-when-no-identi.html อีกด้วย
<MessageWeight>
ระบุการถ่วงน้ำหนักที่กำหนดไว้สำหรับแต่ละข้อความ น้ำหนักข้อความจะช่วยแก้ไขผลกระทบ ของคำขอเดียวสำหรับการคำนวณอัตราการจับกุม น้ำหนักข้อความอาจเป็นค่าใดก็ได้ ตัวแปรโฟลว์ เช่น ส่วนหัว HTTP, พารามิเตอร์การค้นหา, พารามิเตอร์แบบฟอร์ม หรือเนื้อหาข้อความ คุณยังใช้ตัวแปรที่กำหนดเองได้โดยใช้นโยบาย JavaScript หรือ นโยบาย AssignMessage
ใช้ร่วมกับ <Identifier>
เพื่อควบคุมคำขอเพิ่มเติมโดย
ไคลเอ็นต์หรือแอปที่เจาะจง
ตัวอย่างเช่น หากเหตุการณ์การก่อตัวเพิ่มขึ้นอย่างรวดเร็ว <Rate>
คือ 10pm
และแอปส่ง
คำขอที่มีน้ำหนัก 2
จะสามารถมี 5 ข้อความต่อนาทีจาก
เนื่องจากคำขอแต่ละรายการนับเป็น 2
ค่าเริ่มต้น | ไม่มี |
ต้องระบุหรือไม่ | ไม่บังคับ |
ประเภท | จำนวนเต็ม |
องค์ประกอบระดับบนสุด |
<SpikeArrest>
|
องค์ประกอบย่อย | ไม่มี |
ไวยากรณ์
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <MessageWeight ref="flow_variable"/> </SpikeArrest>
ตัวอย่างที่ 1
ตัวอย่างต่อไปนี้จำกัดคำขอไว้ที่ 12 รายการต่อนาที (อนุญาตคำขอ 1 รายการทุกๆ 5 รายการ วินาที หรือ 60/12):
<SpikeArrest name="Spike-Arrest-1"> <Rate>12pm</Rate> <Identifier ref="client_id" /> <MessageWeight ref="request.header.weight" /> </SpikeArrest>
ในตัวอย่างนี้ <MessageWeight>
ยอมรับค่าที่กำหนดเอง (weight
ส่วนหัวในคำขอ) ที่ปรับน้ำหนักข้อความสำหรับไคลเอ็นต์เฉพาะ ช่วงเวลานี้
ช่วยให้ควบคุมการควบคุมได้มากขึ้นสำหรับเอนทิตีที่ระบุด้วย
<Identifier>
ตารางต่อไปนี้อธิบายแอตทริบิวต์ของ <MessageWeight>
แอตทริบิวต์ | คำอธิบาย | การมีบุคคลอยู่ | ค่าเริ่มต้น |
---|---|---|---|
ref |
ระบุตัวแปรโฟลว์ที่มีน้ำหนักข้อความสำหรับไคลเอ็นต์ที่เจาะจง ซึ่งอาจเป็นตัวแปรโฟลว์ เช่น เป็นพารามิเตอร์การค้นหา HTTP ส่วนหัว หรือเนื้อหาข้อความ สำหรับข้อมูลเพิ่มเติม โปรดดู การอ้างอิงตัวแปรโฟลว์ นอกจากนี้ คุณยังสามารถตั้งค่าตัวแปรที่กำหนดเอง โดยใช้นโยบาย JavaScript หรือนโยบาย AssignMessage | ต้องระบุ | ไม่มี |
<Rate>
ระบุอัตราที่จะจํากัดการเข้าชมที่เพิ่มขึ้นอย่างรวดเร็ว (หรือจำนวนที่เพิ่มขึ้น) โดยการตั้งค่าจำนวน
คำขอที่ได้รับอนุญาตในช่วงเวลาต่อนาทีหรือต่อวินาที นอกจากนี้คุณยังใช้องค์ประกอบนี้ใน
ร่วมกับ <Identifier>
และ <MessageWeight>
เพื่อ
ควบคุมการเข้าชมในช่วงรันไทม์อย่างราบรื่นด้วยการยอมรับค่าจากไคลเอ็นต์
ค่าเริ่มต้น | ไม่มี |
ต้องระบุหรือไม่ | ต้องระบุ |
ประเภท | จำนวนเต็ม |
องค์ประกอบระดับบนสุด |
<SpikeArrest>
|
องค์ประกอบย่อย | ไม่มี |
ไวยากรณ์
คุณจะระบุราคาได้ด้วยวิธีใดวิธีหนึ่งต่อไปนี้
- อัตราคงที่ที่คุณระบุเป็นส่วนเนื้อหาขององค์ประกอบ
<Rate>
- ค่าตัวแปรที่ไคลเอ็นต์ส่งได้ ระบุ
ชื่อของตัวแปรโฟลว์ที่ใช้แอตทริบิวต์
ref
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Rate ref="flow_variable">rate[pm|ps]</Rate> </SpikeArrest>
ค่าอัตราที่ถูกต้อง (กำหนดไว้เป็นค่าตัวแปรหรือในส่วนเนื้อหาขององค์ประกอบ) ต้อง เพื่อให้สอดคล้องตามรูปแบบต่อไปนี้
intps
(จำนวนคำขอต่อวินาที โดยปรับให้เรียบเป็นช่วงๆ ของมิลลิวินาที)intpm
(จำนวนคำขอต่อนาที โดยปรับให้เรียบเป็นช่วงๆ วินาที)
ค่าของ int ต้องเป็นจำนวนเต็มบวกที่ไม่ใช่ 0
ตัวอย่างที่ 1
ตัวอย่างต่อไปนี้กำหนดอัตราเป็น 5 คำขอต่อวินาที
<SpikeArrest name="Spike-Arrest-1"> <Rate>5ps</Rate> </SpikeArrest>
นโยบายนี้ปรับอัตราให้เป็นคำขอเดียวซึ่งอนุญาตทุก 200 มิลลิวินาที (1000/5)
ตัวอย่างที่ 2
ตัวอย่างต่อไปนี้กำหนดอัตราเป็น 12 คำขอต่อนาที
<SpikeArrest name="Spike-Arrest-1"> <Rate>12pm</Rate> </SpikeArrest>
นโยบายตัวอย่างนี้ปรับอัตราคำขอให้เป็น 1 คำขอที่อนุญาตทุกๆ 5 วินาที (60/12)
ตารางต่อไปนี้อธิบายแอตทริบิวต์ของ <Rate>
แอตทริบิวต์ | คำอธิบาย | การมีบุคคลอยู่ | ค่าเริ่มต้น |
---|---|---|---|
ref |
ระบุตัวแปรโฟลว์ที่ระบุอัตรา ซึ่งอาจเป็นขั้นตอนใดก็ได้
เช่น พารามิเตอร์การค้นหา HTTP, ส่วนหัว หรือเนื้อหาข้อความ หรือค่า
เช่น KVM ดูข้อมูลเพิ่มเติมได้ที่ข้อมูลอ้างอิงตัวแปรโฟลว์
คุณยังใช้ตัวแปรที่กำหนดเองได้ด้วย โดยใช้นโยบาย JavaScript หรือนโยบาย AssignMessage หากคุณกำหนดทั้ง เช่น <Rate ref="request.header.custom_rate">1pm</Rate> ในตัวอย่างนี้ หากลูกค้าไม่ส่ง "custom_rate" แล้วตามด้วย อัตราสำหรับพร็อกซี API คือ 1 คำขอต่อนาทีสำหรับไคลเอ็นต์ทั้งหมด หากลูกค้าสอบผ่าน "อัตราที่กำหนดเอง [custom_rate]" ขีดจำกัดอัตราคำขอจะกลายเป็น 10 คำขอต่อวินาทีสำหรับลูกค้าทั้งหมดใน พร็อกซี — จนถึงคำขอที่ไม่มี "custom_rate" ส่งส่วนหัวแล้ว คุณสามารถใช้ หากคุณระบุค่าสำหรับ |
ไม่บังคับ | ไม่มี |
<UseEffectiveCount>
กระจายจำนวน Spike Arrest ใน Message Processor (MP) เมื่อใช้การปรับขนาดอัตโนมัติ กลุ่ม
ไวยากรณ์
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <UseEffectiveCount>[false|true]</UseEffectiveCount> </SpikeArrest>
ตัวอย่างที่ 1
ตัวอย่างต่อไปนี้กำหนดให้ <UseEffectiveCount>
เป็นจริง
<SpikeArrest name='Spike-Arrest-1'> <Rate>40ps</Rate> <UseEffectiveCount>true</UseEffectiveCount> </SpikeArrest>
คุณจะใส่องค์ประกอบ <UseEffectiveCount>
หรือไม่ก็ได้ ค่าเริ่มต้นคือ false
เมื่อละเว้นองค์ประกอบจากนโยบาย Spike Arrest
ค่าเริ่มต้น | เท็จ |
ต้องระบุหรือไม่ | ไม่บังคับ |
ประเภท | บูลีน |
องค์ประกอบระดับบนสุด |
<SpikeArrest>
|
องค์ประกอบย่อย | ไม่มี |
ตารางต่อไปนี้อธิบายแอตทริบิวต์ขององค์ประกอบ <UseEffectiveCount>
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ |
---|---|---|---|
ref |
ระบุตัวแปรที่มีค่าเป็น <UseEffectiveCount> ประเภท
ตัวแปรโฟลว์ เช่น พารามิเตอร์การค้นหา HTTP ส่วนหัว หรือเนื้อหาข้อความ สำหรับข้อมูลเพิ่มเติม
โปรดดูการอ้างอิงตัวแปรโฟลว์ นอกจากนี้ คุณยังสามารถตั้งค่าตัวแปรที่กำหนดเอง
โดยใช้นโยบาย JavaScript หรือนโยบาย AssignMessage |
ไม่มี | ไม่บังคับ |
ผลกระทบของ <UseEffectiveCount>
ขึ้นอยู่กับค่า:
true
: ขีดจำกัดอัตราการเพิ่มขึ้นอย่างฉับพลันของ MP คือ<Rate>
หารด้วยจำนวน MP ปัจจุบันในพ็อดเดียวกัน ขีดจำกัดรวมคือค่า จาก<Rate>
เมื่อมีการเพิ่ม (หรือนำ MP) ออกแบบไดนามิก ขีดจํากัดของอัตราจะเพิ่มขึ้น (หรือลดลง) แต่ขีดจำกัดรวมจะยังคงเหมือนเดิมfalse
(นี่คือค่าเริ่มต้นหากละไว้): ขีดจำกัดอัตราการเพิ่มขึ้นของ MP แต่ละรายการคือ เพียงค่าของ<Rate>
ขีดจำกัดรวมคือผลรวมของอัตรา ส.ส. ทั้งหมด เมื่อเพิ่ม ส.ส. (หรือนำออก) ขีดจำกัดอัตราการเพิ่มขึ้นอย่างฉับพลันของแต่ละคนจะยังคงเหมือนเดิม แต่ขีดจำกัดรวมจะเพิ่มขึ้น (หรือ ลดลง)
ตารางต่อไปนี้แสดงผลกระทบของ <UseEffectiveCount>
ที่มีต่อขีดจำกัดอัตราที่มีผลของ
แต่ละ MP:
ค่าของ <UseEffectiveCount> |
||||||
---|---|---|---|---|---|---|
false |
false |
false |
true |
true |
true |
|
# ส.ส. | 8 | 4 | 2 | 8 | 4 | 2 |
ค่าของ <Rate> |
10 | 10 | 10 | 40 | 40 | 40 |
อัตราที่มีผลต่อ MP | 10 | 10 | 10 | 5 | 10 | 20 |
ขีดจำกัดรวม | 80 | 40 | 20 | 40* | 40* | 40* |
* เหมือนกับ <Rate> |
ในตัวอย่างนี้ คุณจะสังเกตว่าเมื่อจำนวน MP ลดลงจาก 4 เป็น 2 และ
<UseEffectiveCount>
เท่ากับ false
อัตราที่มีผลต่อ MP จะยังคงเท่าเดิม (ที่
10) แต่เมื่อ <UseEffectiveCount>
เท่ากับ true
อัตราที่มีผลต่อ MP จะลดลงจาก
10 ถึง 20 เมื่อจำนวน MP ลดลงจาก 4 เป็น 2
ตัวแปรโฟลว์
เมื่อนโยบาย Spike Arrest ทำงาน ระบบจะเติมค่าตัวแปรของโฟลว์ต่อไปนี้
ตัวแปร | ประเภท | สิทธิ์ | คำอธิบาย |
---|---|---|---|
ratelimit.policy_name.failed |
บูลีน | อ่านอย่างเดียว | ระบุว่านโยบายล้มเหลว (true หรือ
false ) |
ดูข้อมูลเพิ่มเติมได้ที่ข้อมูลอ้างอิงตัวแปรโฟลว์
ข้อมูลอ้างอิงข้อผิดพลาด
ส่วนนี้จะอธิบายรหัสข้อผิดพลาดและข้อความแสดงข้อผิดพลาดที่ส่งกลับและตัวแปรข้อบกพร่อง ที่ Edge ตั้งค่าไว้เมื่อนโยบายนี้ทริกเกอร์ข้อผิดพลาด ข้อมูลนี้มีความสำคัญต่อการทราบว่าคุณจะสร้างกฎความผิดพลาดเพื่อ จัดการกับข้อผิดพลาด ดูข้อมูลเพิ่มเติมได้ที่ สิ่งที่จำเป็นต้องทราบ เกี่ยวกับข้อผิดพลาดของนโยบายและการจัดการ ข้อผิดพลาด
ข้อผิดพลาดเกี่ยวกับรันไทม์
ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อนโยบายทำงาน
รหัสข้อผิดพลาด | สถานะ HTTP | สาเหตุ | แก้ไข |
---|---|---|---|
policies.ratelimit.FailedToResolveSpikeArrestRate |
500 |
ข้อผิดพลาดนี้เกิดขึ้นหากมีการอ้างอิงถึงตัวแปรที่มีการตั้งค่าอัตรา
ภายในองค์ประกอบ <Rate> ไม่สามารถแก้ไขเป็นค่าภายใน Spike Arrest
องค์ประกอบนี้เป็นแบบบังคับและใช้เพื่อระบุอัตราการจับกุมที่เพิ่มขึ้นอย่างฉับพลันใน
ในรูปแบบ intpm หรือ intps |
build |
policies.ratelimit.InvalidMessageWeight |
500 |
ข้อผิดพลาดนี้เกิดขึ้นหากค่าที่ระบุสำหรับองค์ประกอบ <MessageWeight> ถึง
ตัวแปรโฟลว์ไม่ถูกต้อง (ค่าที่ไม่ใช่จำนวนเต็ม) |
build |
policies.ratelimit.SpikeArrestViolation |
429 |
เกินขีดจำกัดของอัตรา |
ข้อผิดพลาดในการทำให้ใช้งานได้
ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อคุณใช้พร็อกซีที่มีนโยบายนี้
ชื่อข้อผิดพลาด | สาเหตุ | แก้ไข |
---|---|---|
InvalidAllowedRate |
หากอัตราการจับกุมที่เพิ่มขึ้นอย่างฉับพลันที่ระบุไว้ในองค์ประกอบ <Rate> ของการจับกุม Spike
นโยบายไม่ใช่จำนวนเต็มหรือหากราคาไม่มี ps หรือ pm เป็นคำต่อท้าย
การทำให้พร็อกซี API ใช้งานได้ล้มเหลว |
build |
ตัวแปรความผิดพลาด
ระบบจะตั้งค่าตัวแปรเหล่านี้เมื่อเกิดข้อผิดพลาดรันไทม์ โปรดดูข้อมูลเพิ่มเติมที่หัวข้อสิ่งที่คุณจำเป็นต้องทราบ เกี่ยวกับข้อผิดพลาดของนโยบาย
ตัวแปร | สถานที่ | ตัวอย่าง |
---|---|---|
fault.name="fault_name" |
fault_name คือชื่อของข้อผิดพลาดตามที่ระบุไว้ใน ตารางข้อผิดพลาดรันไทม์ด้านบน ชื่อข้อผิดพลาดเป็นส่วนสุดท้าย ของรหัสข้อผิดพลาด | fault.name Matches "SpikeArrestViolation" |
ratelimit.policy_name.failed |
policy_name คือชื่อที่ผู้ใช้ระบุของนโยบายที่เป็นสาเหตุของข้อผิดพลาด | ratelimit.SA-SpikeArrestPolicy.failed = true |
ตัวอย่างการตอบสนองข้อผิดพลาด
ตัวอย่างการตอบกลับข้อผิดพลาดมีดังนี้
{ "fault":{ "detail":{ "errorcode":"policies.ratelimit.SpikeArrestViolation" }, "faultstring":"Spike arrest violation. Allowed rate : 10ps" } }
ตัวอย่างกฎข้อผิดพลาด
ด้านล่างนี้เป็นตัวอย่างกฎข้อผิดพลาดในการจัดการข้อผิดพลาด SpikeArrestViolation
<FaultRules> <FaultRule name="Spike Arrest Errors"> <Step> <Name>JavaScript-1</Name> <Condition>(fault.name Matches "SpikeArrestViolation") </Condition> </Step> <Condition>ratelimit.Spike-Arrest-1.failed=true</Condition> </FaultRule> </FaultRules>
รหัสสถานะ HTTP ปัจจุบันสำหรับการเกินขีดจำกัดของอัตราที่กำหนดโดยนโยบายโควต้าหรือการจับจองช่วงหยุดนิ่ง
คือ 429
(มีคำขอมากเกินไป) วิธีเปลี่ยนรหัสสถานะ HTTP เป็น 500
(ข้อผิดพลาดภายในเซิร์ฟเวอร์) ให้ตั้งค่า
กำลังใช้พร็อพเพอร์ตี้ features.isHTTPStatusTooManyRequestEnabled
กับ false
อัปเดตพร็อพเพอร์ตี้องค์กร API
เช่น
curl -u email:password -X POST -H "Content-type:application/xml" http://api.enterprise.apigee.com/v1/organizations/myorg -d \ "<Organization type="trial" name="MyOrganization"> <Properties> <Property name="features.isHTTPStatusTooManyRequestEnabled">true</Property> . . . </Properties> </Organization>"
สคีมา
นโยบายแต่ละประเภทจะกำหนดโดยสคีมา XML (.xsd
) สคีมานโยบายสำหรับใช้อ้างอิง
ที่มีอยู่ใน GitHub
หัวข้อที่เกี่ยวข้อง
- นโยบายโควต้า: โควต้า เพื่อจำกัดการเข้าชมของลูกค้าแต่ละราย
- การจำกัดอัตราสำหรับการจำกัดอัตรา ภาพรวม
- การเปรียบเทียบ นโยบายโควต้าและปลายทางสูงสุด
- ตัวอย่างการทำงานของพร็อกซี API