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

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

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

ในบทแนะนำนี้ คุณจะได้เรียนรู้วิธีการต่อไปนี้

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

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

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

เพิ่มนโยบายการป้องกันการเพิ่มขึ้นของทราฟิก

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

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

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

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

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

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

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

    คลิกขั้นตอนใน PreFlow ของคำขอ

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

    สร้างนโยบายการควบคุมอัตราการเข้าชมที่เพิ่มขึ้น

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

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

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

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

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

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