เพิ่มนโยบาย Spike Arrest ไปยัง API ของคุณ

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

สิ่งที่คุณจะได้เรียนรู้

ในบทแนะนำนี้ คุณจะได้เรียนรู้วิธี:

  • เพิ่มนโยบายที่มีผลต่อคำขอและการตอบกลับ
  • ดูผลกระทบของนโยบาย

สิ่งที่คุณต้องมี

  • นโยบายอย่างน้อย 1 รายการในพร็อกซี (เป็นส่วนหนึ่งของบทแนะนำเริ่มต้นใช้งาน)
  • curl ติดตั้งในเครื่องของคุณเพื่อเรียก API จากบรรทัดคำสั่ง

เพิ่มนโยบายการจับกุม

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

เพิ่มนโยบาย Spike Arrest ลงในพร็อกซี API ดังนี้

  1. ลงชื่อเข้าใช้ apigee.com/edge
  2. เลือกพัฒนา > พร็อกซี API ในแถบนำทางด้านซ้าย
  3. เลือกพร็อกซี API ที่คุณต้องการเพิ่มนโยบาย Spike Arrest

    หากทำตามบทแนะนำการเริ่มต้นใช้งานแล้ว คุณจะเพิ่มฟีเจอร์นี้ในพร็อกซี "เริ่มต้นใช้งาน" ที่สร้างไว้ในสร้างพร็อกซี API ได้

  4. ในตัวแก้ไขสำหรับพร็อกซี API ใหม่ ให้คลิกแท็บพัฒนา ดังนี้

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

  5. ในแผงการนำทางด้านซ้าย ให้คลิก PreFlow ในส่วน Proxy Endpoints > default (บทแนะนำอื่นๆ จะครอบคลุมแนวคิดของขั้นตอน)
  6. คลิกปุ่ม +ขั้นตอนด้านบนที่สอดคล้องกับ "Request PreFlow" การดำเนินการนี้จะแสดงรายการจัดหมวดหมู่ของนโยบายทั้งหมดที่คุณสร้างได้

    คลิกขั้นตอนในคำขอโฟลว์คำขอ

  7. เลือกการระงับการเพิ่มขึ้นในหมวดหมู่การจัดการการรับส่งข้อมูล กล่องโต้ตอบนโยบายใหม่จะปรากฏขึ้นดังนี้

    สร้างนโยบาย Spike Arrest

  8. ปล่อยชื่อเริ่มต้นไว้ แล้วคลิกเพิ่ม นโยบายใหม่จะแนบอยู่กับขั้นตอน PreFlow ของคำขอ
  9. ใน Navigator ให้ตรวจสอบว่ายังคงเลือก PreFlow ในส่วน Proxy Endpoints > ค่าเริ่มต้น อยู่ และโปรดทราบข้อมูลต่อไปนี้ในเครื่องมือแก้ไขพร็อกซี API
    • ระบบจะเพิ่มนโยบาย Spike Arrest-1 ใหม่ภายใต้นโยบายในแถบนำทางทางด้านซ้ายของ API Proxy Editor
    • ระบบจะเพิ่มไอคอน Spike Arrest-1 ในมุมมองนักออกแบบที่ตรงกลางด้านบนของเครื่องมือแก้ไขพร็อกซี API ซึ่งเป็นภาพแสดงโฟลว์ข้อความของพร็อกซี
    • XML สำหรับนโยบายจะแสดงในมุมมองโค้ดที่กึ่งกลางด้านล่างของเครื่องมือแก้ไขพร็อกซี API

    ดูนโยบาย PreFlow ที่มี Spike Arrest

  10. ใน Navigator ให้เลือก Spike Arrest-1 ในส่วนนโยบาย แล้วจดบันทึกข้อมูลต่อไปนี้ในเครื่องมือแก้ไขพร็อกซี API
    • รายละเอียดนโยบายจะแสดงในมุมมองนักออกแบบที่ตรงกลางด้านบนของเครื่องมือแก้ไขพร็อกซี API
    • XML สำหรับนโยบายจะแสดงในมุมมองโค้ดที่ตรงกลางด้านล่างของเครื่องมือแก้ไขพร็อกซี API
    • องค์ประกอบ XML และค่าแอตทริบิวต์สำหรับนโยบายจะแสดงอยู่ใน Property Inspector ทางด้านขวาของเครื่องมือแก้ไขพร็อกซี API

  11. ใน XML สำหรับนโยบาย ให้เปลี่ยนค่าขององค์ประกอบ <Rate> เป็น 13:00 น. (ซึ่งหมายถึงคำขอประมาณ 2 รายการที่อนุญาตทุกๆ 60 วินาทีในระบบคลาวด์)

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

    โปรดทราบว่าค่า Rate ในเครื่องมือตรวจสอบคุณสมบัติจะเปลี่ยนเป็น "1pm" ด้วย หรือคุณอาจเปลี่ยนค่า Rate ในเครื่องมือตรวจสอบพร็อพเพอร์ตี้เพื่อให้แสดงในมุมมอง XML ก็ได้

  12. คลิกบันทึกเพื่อบันทึกเวอร์ชันปัจจุบันที่มีการเปลี่ยนแปลง
  13. เรียก 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 ในเว็บเบราว์เซอร์ก็ได้เช่นกัน)

  14. เรียกใช้คำสั่ง curl (หรือรีเฟรชหน้าต่างเบราว์เซอร์) อีก 2-3 ครั้งภายใน 1 นาที และสังเกตเห็นว่าคุณได้รับข้อความต่อไปนี้เนื่องจากคุณเกินขีดจำกัดอัตราของนโยบาย:
    {
    "fault": {
      "faultstring":"Spike arrest violation. Allowed rate : 1pm",
      "detail": {
        "errorcode":"policies.ratelimit.SpikeArrestViolation"}
      }
    }

    หากพยายามโทรเพิ่มภายใน 1 นาที คุณควรจะได้รับข้อความแจ้งข้อผิดพลาดต่อไป

  15. แก้ไขนโยบายเพื่อตั้งขีดจำกัด <Rate> เป็น 15:00 น. (ซึ่งหมายความว่าอนุญาตการเรียกประมาณ 2 ครั้งทุกๆ 4 วินาทีในระบบคลาวด์) แล้วบันทึกพร็อกซี API
  16. เรียกใช้คำสั่ง curl หรือรีเฟรชเบราว์เซอร์ซ้ำๆ (curl เร็วกว่า) โปรดสังเกตว่าหากคุณทำการโทร 1 หรือ 2 ครั้งภายในช่วงเวลา 4 วินาที การโทรจะประสบความสำเร็จ หากคุณ โทรออกเร็วๆ มากกว่า 2 สายภายใน 4 วินาที คุณควรเห็นข้อผิดพลาด แต่หลังจากทุก 4 วินาที คุณจะสามารถโทรออกต่อไปได้ แทนที่จะต้องบล็อกเป็นเวลา 1 นาทีเต็ม (ด้วยการตั้งค่า 13:00 น.)