คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
สิ่งที่คุณจะได้เรียนรู้
ในบทแนะนำนี้ คุณจะได้เรียนรู้วิธี:
- เพิ่มนโยบายที่มีผลต่อคำขอและการตอบกลับ
- ดูผลกระทบของนโยบาย
สิ่งที่คุณต้องมี
- นโยบายอย่างน้อย 1 รายการในพร็อกซี (เป็นส่วนหนึ่งของบทแนะนำเริ่มต้นใช้งาน)
curl
ติดตั้งในเครื่องของคุณเพื่อเรียก API จากบรรทัดคำสั่ง
เพิ่มนโยบายการจับกุม
ในบทแนะนำนี้ คุณจะได้เพิ่มและกำหนดค่านโยบาย SpikeArrest เพื่อป้องกันบริการเป้าหมายจากการเข้าชมที่เพิ่มขึ้นอย่างฉับพลันซึ่งอาจเกิดจากการใช้งานที่เพิ่มขึ้น ไคลเอ็นต์ที่มีข้อบกพร่อง หรือการโจมตีที่เป็นอันตราย เมื่อจำนวนคำขอเกินขีดจำกัดของอัตรา API จะส่งกลับข้อผิดพลาด HTTP 500 สำหรับคำขอ
เพิ่มนโยบาย Spike Arrest ลงในพร็อกซี API ดังนี้
- ลงชื่อเข้าใช้ apigee.com/edge
- เลือกพัฒนา > พร็อกซี API ในแถบนำทางด้านซ้าย
- เลือกพร็อกซี API ที่คุณต้องการเพิ่มนโยบาย Spike Arrest
หากทำตามบทแนะนำการเริ่มต้นใช้งานแล้ว คุณจะเพิ่มฟีเจอร์นี้ในพร็อกซี "เริ่มต้นใช้งาน" ที่สร้างไว้ในสร้างพร็อกซี API ได้
- ในตัวแก้ไขสำหรับพร็อกซี API ใหม่ ให้คลิกแท็บพัฒนา ดังนี้
เครื่องมือแก้ไขพร็อกซี API ช่วยให้คุณเห็นโครงสร้างของพร็อกซี API และกำหนดค่าโฟลว์ได้ ตัวแก้ไขจะนำเสนอภาพคำขอและข้อความตอบกลับของพร็อกซีของคุณ รวมทั้งการแสดงผล XML ที่สำคัญซึ่งกำหนดพร็อกซีที่แก้ไขได้
- ในแผงการนำทางด้านซ้าย ให้คลิก PreFlow ในส่วน Proxy Endpoints > default (บทแนะนำอื่นๆ จะครอบคลุมแนวคิดของขั้นตอน)
- คลิกปุ่ม +ขั้นตอนด้านบนที่สอดคล้องกับ "Request PreFlow" การดำเนินการนี้จะแสดงรายการจัดหมวดหมู่ของนโยบายทั้งหมดที่คุณสร้างได้
- เลือกการระงับการเพิ่มขึ้นในหมวดหมู่การจัดการการรับส่งข้อมูล กล่องโต้ตอบนโยบายใหม่จะปรากฏขึ้นดังนี้
- ปล่อยชื่อเริ่มต้นไว้ แล้วคลิกเพิ่ม นโยบายใหม่จะแนบอยู่กับขั้นตอน PreFlow ของคำขอ
- ใน Navigator ให้ตรวจสอบว่ายังคงเลือก PreFlow ในส่วน Proxy Endpoints > ค่าเริ่มต้น อยู่ และโปรดทราบข้อมูลต่อไปนี้ในเครื่องมือแก้ไขพร็อกซี API
- ระบบจะเพิ่มนโยบาย Spike Arrest-1 ใหม่ภายใต้นโยบายในแถบนำทางทางด้านซ้ายของ API Proxy Editor
- ระบบจะเพิ่มไอคอน Spike Arrest-1 ในมุมมองนักออกแบบที่ตรงกลางด้านบนของเครื่องมือแก้ไขพร็อกซี API ซึ่งเป็นภาพแสดงโฟลว์ข้อความของพร็อกซี
- XML สำหรับนโยบายจะแสดงในมุมมองโค้ดที่กึ่งกลางด้านล่างของเครื่องมือแก้ไขพร็อกซี API
- ใน Navigator ให้เลือก Spike Arrest-1 ในส่วนนโยบาย แล้วจดบันทึกข้อมูลต่อไปนี้ในเครื่องมือแก้ไขพร็อกซี API
- รายละเอียดนโยบายจะแสดงในมุมมองนักออกแบบที่ตรงกลางด้านบนของเครื่องมือแก้ไขพร็อกซี API
- XML สำหรับนโยบายจะแสดงในมุมมองโค้ดที่ตรงกลางด้านล่างของเครื่องมือแก้ไขพร็อกซี API
- องค์ประกอบ XML และค่าแอตทริบิวต์สำหรับนโยบายจะแสดงอยู่ใน Property Inspector ทางด้านขวาของเครื่องมือแก้ไขพร็อกซี API
-
ใน XML สำหรับนโยบาย ให้เปลี่ยนค่าขององค์ประกอบ
<Rate>
เป็น 13:00 น. (ซึ่งหมายถึงคำขอประมาณ 2 รายการที่อนุญาตทุกๆ 60 วินาทีในระบบคลาวด์)คุณระบุอัตราเป็นค่าจำนวนเต็มต่อนาที (
pm
) หรือต่อวินาที (ps
) ได้ ซึ่งเป็นขีดจำกัดที่ต่ำมากและใช้สำหรับบทแนะนำนี้เพื่อสาธิตนโยบายเท่านั้น โดยทั่วไป คุณจะตั้งขีดจำกัดที่สูงกว่านี้มากโปรดทราบว่าค่า
Rate
ในเครื่องมือตรวจสอบคุณสมบัติจะเปลี่ยนเป็น "1pm" ด้วย หรือคุณอาจเปลี่ยนค่า Rate ในเครื่องมือตรวจสอบพร็อพเพอร์ตี้เพื่อให้แสดงในมุมมอง XML ก็ได้ - คลิกบันทึกเพื่อบันทึกเวอร์ชันปัจจุบันที่มีการเปลี่ยนแปลง
-
เรียก API โดยใช้
curl
โดยแทนที่ชื่อองค์กร Apigee สำหรับ org_name:curl "http://org_name-test.apigee.net/getstarted"
เช่น
curl "http://ahamilton-eval-test.apigee.net/getstarted" | python -m json.tool
ตรวจสอบว่าคำขอประสบความสำเร็จและเห็นการตอบกลับ XML เดียวกันกับที่คุณเคยทำ (หรือจะป้อนเฉพาะ URL ในเว็บเบราว์เซอร์ก็ได้เช่นกัน)
- เรียกใช้คำสั่ง
curl
(หรือรีเฟรชหน้าต่างเบราว์เซอร์) อีก 2-3 ครั้งภายใน 1 นาที และสังเกตเห็นว่าคุณได้รับข้อความต่อไปนี้เนื่องจากคุณเกินขีดจำกัดอัตราของนโยบาย:{ "fault": { "faultstring":"Spike arrest violation. Allowed rate : 1pm", "detail": { "errorcode":"policies.ratelimit.SpikeArrestViolation"} } }
หากพยายามโทรเพิ่มภายใน 1 นาที คุณควรจะได้รับข้อความแจ้งข้อผิดพลาดต่อไป
- แก้ไขนโยบายเพื่อตั้งขีดจำกัด <
Rate>
เป็น 15:00 น. (ซึ่งหมายความว่าอนุญาตการเรียกประมาณ 2 ครั้งทุกๆ 4 วินาทีในระบบคลาวด์) แล้วบันทึกพร็อกซี API - เรียกใช้คำสั่ง
curl
หรือรีเฟรชเบราว์เซอร์ซ้ำๆ (curl
เร็วกว่า) โปรดสังเกตว่าหากคุณทำการโทร 1 หรือ 2 ครั้งภายในช่วงเวลา 4 วินาที การโทรจะประสบความสำเร็จ หากคุณ โทรออกเร็วๆ มากกว่า 2 สายภายใน 4 วินาที คุณควรเห็นข้อผิดพลาด แต่หลังจากทุก 4 วินาที คุณจะสามารถโทรออกต่อไปได้ แทนที่จะต้องบล็อกเป็นเวลา 1 นาทีเต็ม (ด้วยการตั้งค่า 13:00 น.)