ใช้ปลั๊กอิน

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

Edge Microgateway เวอร์ชัน 3.2.x

ผู้ชม

หัวข้อนี้มีไว้สำหรับโอเปอเรเตอร์ Edge Microgateway ที่ต้องการใช้ปลั๊กอินที่มีอยู่ จะติดตั้งพร้อมด้วยไมโครเกตเวย์ รวมทั้งมีการกล่าวถึงการเพิ่มขึ้นอย่างรวดเร็วของการระงับและปลั๊กอินโควต้าใน (ทั้งคู่จะรวมอยู่ในการติดตั้ง) หากคุณเป็นนักพัฒนาซอฟต์แวร์ที่ต้องการพัฒนา โปรดดูพัฒนา ปลั๊กอินที่กำหนดเอง

ปลั๊กอิน Edge Microgateway คืออะไร

ปลั๊กอินคือโมดูล Node.js ที่เพิ่มฟังก์ชันการทำงานให้กับ Edge Microgateway โมดูลปลั๊กอิน จะมีรูปแบบที่สอดคล้องกันและจัดเก็บไว้ในตำแหน่งที่ Edge Microgateway รู้จัก ซึ่งทำให้ Microgateway เพื่อค้นหาและโหลดโดยอัตโนมัติ Edge Microgateway เป็นส่วนหนึ่งของ และคุณสามารถสร้างปลั๊กอินที่กำหนดเองได้ ตามที่อธิบายไว้ในพัฒนาปลั๊กอินที่กำหนดเอง

ปลั๊กอินที่มีอยู่ซึ่งมาพร้อมกับ Edge ทางไมโครเกตเวย์

Edge Microgateway เมื่อมีปลั๊กอินที่มีอยู่แล้วจำนวนมาก เหล่านี้ รวมข้อมูลต่อไปนี้

ปลั๊กอิน เปิดใช้โดยค่าเริ่มต้นแล้ว คำอธิบาย
Analytics ใช่ ส่งข้อมูลวิเคราะห์จาก Edge Microgateway ไปยัง Apigee Edge
OAuth ใช่ เพิ่มโทเค็น OAuth และการตรวจสอบคีย์ API ไปยัง Edge Microgateway ดูการตั้งค่า และกำหนดค่า Edge Microgateway
โควต้า ไม่ได้ บังคับใช้โควต้าสำหรับคำขอไปยัง Edge Microgateway ใช้ Apigee Edge เพื่อจัดเก็บและจัดการ โควต้า โปรดดูการใช้ปลั๊กอินโควต้า
ไม่ได้ ป้องกันการรับส่งข้อมูลที่เพิ่มขึ้นอย่างรวดเร็วและการโจมตีแบบ DoS ดูการใช้ปลั๊กอินหยุดตรวจจับการเพิ่มขึ้นอย่างฉับพลัน
ส่วนหัวตัวพิมพ์ใหญ่ ไม่ได้ พร็อกซีตัวอย่างที่มีการแสดงความคิดเห็นและใช้เป็นแนวทางเพื่อช่วยนักพัฒนาซอฟต์แวร์ในการเขียนปลั๊กอินที่กำหนดเอง โปรดดู ปลั๊กอินตัวอย่างของ Edge Microgateway
accumulate-request ไม่ได้ รวมข้อมูลคำขอลงในออบเจ็กต์เดียวก่อนส่งข้อมูลไปยังออบเจ็กต์ถัดไป ในเชนปลั๊กอิน มีประโยชน์สำหรับการเขียนปลั๊กอิน Transform ที่ต้องทำงานใน เดี่ยว ออบเจ็กต์เนื้อหาคำขอสะสม
accumulate-response ไม่ได้ รวบรวมข้อมูลคำตอบไว้ในออบเจ็กต์เดียวก่อนส่งข้อมูลไปยังออบเจ็กต์ถัดไป ในเชนปลั๊กอิน มีประโยชน์สำหรับการเขียนปลั๊กอิน Transform ที่ต้องทำงานใน ออบเจ็กต์เนื้อหาการตอบสนองสะสมรายการเดียว
เปลี่ยนรูปแบบตัวพิมพ์ใหญ่ ไม่ได้ แปลงข้อมูลคำขอหรือการตอบกลับ ปลั๊กอินนี้แสดงแนวทางปฏิบัติแนะนำ การใช้งานปลั๊กอิน Transform ปลั๊กอินตัวอย่างนี้ทำการแปลงเพียงเล็กน้อย (แปลงข้อมูลคำขอหรือข้อมูลการตอบกลับเป็นตัวพิมพ์ใหญ่) แต่ก็สามารถนำไปปรับใช้กับ ทำการแปลงประเภทอื่นๆ เช่น XML เป็น JSON
json2xm ไม่ได้ แปลงข้อมูลคำขอหรือการตอบกลับตามส่วนหัวการยอมรับหรือประเภทเนื้อหา สำหรับ รายละเอียด ดูที่ปลั๊กอิน ใน GitHub
หน่วยความจำโควต้า ไม่ได้ บังคับใช้โควต้าสำหรับคำขอไปยัง Edge Microgateway ร้านค้าและจัดการโควต้าในเครื่อง ความทรงจำ
การตรวจสุขภาพ ไม่ได้ แสดงข้อมูลเกี่ยวกับกระบวนการ Edge Microgateway เช่น การใช้หน่วยความจำ การใช้ CPU ฯลฯ หากต้องการใช้ปลั๊กอินให้เรียก URL /healthcheck บน Edge อินสแตนซ์ไมโครเกตเวย์ ปลั๊กอินนี้เป็นเพียงตัวอย่างที่คุณสามารถใช้เพื่อ ใช้งานปลั๊กอินการตรวจสอบประสิทธิภาพการทำงานของคุณเอง

วิธีค้นหาปลั๊กอินที่มีอยู่

ปลั๊กอินที่มีอยู่ซึ่งมาพร้อมกับ Edge Microgateway อยู่ที่นี่โดยที่ [prefix] คือไดเรกทอรีคำนำหน้า npm โปรดดู Edge Microgateway ติดตั้งที่ใด หากไม่พบไดเรกทอรีนี้

[prefix]/lib/node_modules/edgemicro/node_modules/microgateway-plugins

การเพิ่มและกำหนดค่าปลั๊กอิน

ทำตามรูปแบบนี้เพื่อเพิ่มและกำหนดค่าปลั๊กอิน

  1. หยุด Edge Microgateway
  2. เปิดไฟล์การกำหนดค่า Edge Microgateway ดูรายละเอียดได้ที่ เปลี่ยนแปลงการกําหนดค่าสําหรับตัวเลือก
  3. เพิ่มปลั๊กอินลงในเอลิเมนต์ plugins:sequence ของไฟล์การกำหนดค่า ดังนี้ ปลั๊กอินจะทำงานตามลำดับที่ปรากฏในรายการนี้
edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
     level: info
     dir: /var/tmp
     stats_log_interval: 60
  plugins:
     dir: ../plugins
     sequence:   
     - oauth
     - plugin-name
  1. กำหนดค่าปลั๊กอิน ปลั๊กอินบางอย่างมีพารามิเตอร์ที่ไม่บังคับซึ่งคุณกำหนดค่าได้ใน ไฟล์การกำหนดค่าเซิร์ฟเวอร์ เช่น เพิ่มสแตนซาต่อไปนี้เพื่อกำหนดค่าการจับกุมที่เพิ่มขึ้นอย่างฉับพลัน ปลั๊กอิน ดูการใช้ปลั๊กอินหยุดตรวจจับการเพิ่มขึ้นอย่างฉับพลัน เพื่อดูข้อมูลเพิ่มเติม
    edgemicro:
      home: ../gateway
      port: 8000
      max_connections: -1
      max_connections_hard: -1
      logging:
        level: info
        dir: /var/tmp
        stats_log_interval: 60
      plugins:
        dir: ../plugins
        sequence:
          - oauth
          - spikearrest
    spikearrest:
       timeUnit: minute
       allow: 10
    
  1. บันทึกไฟล์
  2. รีสตาร์ทหรือโหลด Edge Microgateway ซ้ำ ขึ้นอยู่กับไฟล์การกำหนดค่าที่คุณแก้ไข

การกำหนดค่าเฉพาะปลั๊กอิน

คุณสามารถลบล้างพารามิเตอร์ปลั๊กอินที่ระบุในไฟล์การกำหนดค่าได้โดยการสร้าง การกำหนดค่าเฉพาะปลั๊กอินในไดเรกทอรีนี้

[prefix]/lib/node_modules/edgemicro/node_modules/microgateway-plugins/config

โดยที่ [prefix] คือไดเรกทอรีคำนำหน้า npm โปรดดู Edge Microgateway ติดตั้งที่ใด หากไม่พบไดเรกทอรีนี้

plugins/<plugin_name>/config/default.yaml เช่น คุณอาจใส่ ใน plugins/spikearrest/config/default.yaml และจะลบล้าง การตั้งค่า

spikearrest:
   timeUnit: hour   
   allow: 10000   
   buffersize: 0

การใช้ปลั๊กอินหยุดตรวจจับการเพิ่มขึ้นอย่างฉับพลัน

ปลั๊กอินสำหรับหยุดตรวจจับการเพิ่มขึ้นอย่างรวดเร็วช่วยป้องกันการรับส่งข้อมูลที่เพิ่มขึ้นอย่างฉับพลัน ควบคุมจำนวนคำขอ ที่ประมวลผลโดยอินสแตนซ์ Edge Microgateway

การเพิ่มปลั๊กอินหยุดตรวจจับการเพิ่มขึ้นอย่างฉับพลัน

ดูการเพิ่มและกำหนดค่าปลั๊กอิน

ตัวอย่างการกำหนดค่าสำหรับ การจับกุมอย่างกะทันหัน

edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
  plugins:
    dir: ../plugins
    sequence:
      - oauth
      - spikearrest
spikearrest:
   timeUnit: minute
   allow: 10
   bufferSize: 5

ตัวเลือกการกำหนดค่าสำหรับ การจับกุมอย่างกะทันหัน

  • timeUnit: ความถี่ที่กรอบเวลาการดำเนินการจับกุมที่เพิ่มขึ้นอย่างรวดเร็วจะรีเซ็ต ค่าที่ถูกต้อง เป็นวินาทีหรือนาที
  • allow: จำนวนคำขอสูงสุดที่อนุญาตในระหว่างหน่วยเวลา โปรดดู ถ้าคุณใช้ Edge Micro หลายตัว กระบวนการ
  • bufferSize: (ไม่บังคับ ค่าเริ่มต้น = 0) หากบัมเปอร์ขนาด > 0, การจับกุมอย่างฉับพลัน จัดเก็บคำขอจำนวนนี้ไว้ในบัฟเฟอร์ ทันทีที่ "หน้าต่าง" ของการดำเนินการถัดไป เกิดขึ้น ระบบจะประมวลผลคำขอที่บัฟเฟอร์ก่อน โปรดดูเพิ่มเติมที่การเพิ่ม บัฟเฟอร์

การจับกุมแบบทันทีทำงานอย่างไร

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

พฤติกรรมจับจองที่เพิ่มขึ้นอย่างฉับพลันของรันไทม์จะแตกต่างจากสิ่งที่คุณอาจคาดหวังจากข้อความตามตัวอักษร ค่าต่อนาทีหรือต่อวินาทีที่คุณป้อน

ตัวอย่างเช่น สมมติว่าคุณระบุอัตราคำขอ 30 รายการต่อนาที ดังนี้

spikearrest:
   timeUnit: minute
   allow: 30

ในการทดสอบ คุณอาจคิดว่าสามารถส่งคำขอได้ 30 รายการภายใน 1 วินาที ตราบใดที่ระบบส่งคำขอเข้ามา ภายใน 1 นาที แต่นโยบายไม่ได้บังคับใช้การตั้งค่าดังกล่าว ลองคิดดูนะว่า 30 คำขอภายในช่วงเวลา 1 วินาทีอาจถือว่าเป็นช่วงสั้นๆ ในบางสภาพแวดล้อม

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

ค่าโทรต่อนาที

ระบบจะปรับราคาต่อนาทีให้เป็นคำขอที่มีช่วงวินาทีตามที่ได้รับอนุญาต เช่น 30 คำขอต่อนาทีจะได้รับการแก้ไขดังนี้

60 วินาที (1 นาที) / 30 = ช่วงเวลา 2 วินาที หรือประมาณ 1 คำขอทุกๆ 2 วินาที ต คำขอที่ 2 ภายใน 2 วินาทีจะล้มเหลว นอกจากนี้ คำขอครั้งที่ 31 ภายใน 1 นาทีจะล้มเหลวด้วย

อัตราต่อวินาที

ระบบจะปรับอัตราต่อวินาทีให้เป็นคำขอที่ราบรื่นซึ่งอนุญาตเป็นช่วงเวลาเป็นมิลลิวินาที ตัวอย่างเช่น ระบบจะปรับเรียบตามคำขอ 10 รายการ/วินาที ดังนี้

1, 000 มิลลิวินาที (1 วินาที) / 10 = ช่วงเวลา 100 มิลลิวินาที หรือประมาณ 1 คำขอ ทุก 100 มิลลิวินาที คำขอที่ 2 ภายใน 100 มิลลิวินาทีจะล้มเหลว นอกจากนั้น คำขอครั้งที่ 11 ภายใน เวลาเพียงวินาทีเดียวก็จะล้มเหลว

เมื่อเกินขีดจำกัด

หากจำนวนคำขอเกินขีดจำกัดภายในช่วงเวลาที่ระบุ การจับกุมอย่างฉับพลัน แสดงข้อความแสดงข้อผิดพลาดนี้ที่มีสถานะ HTTP 503:

{"error": "spike arrest policy violated"}

การเพิ่มบัฟเฟอร์

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

หากคุณใช้ Edge Micro หลายรายการ กระบวนการ

จำนวนคำขอที่อนุญาตขึ้นอยู่กับจำนวนกระบวนการของผู้ปฏิบัติงาน Edge Micro ที่ วิ่งอยู่ การจับกุมที่เพิ่มขึ้นอย่างรวดเร็วจะคำนวณจำนวนคำขอที่อนุญาตต่อกระบวนการทำงานของพนักงาน โดยค่าเริ่มต้น จำนวนการประมวลผล Edge Micro จะเท่ากับจำนวน CPU ในเครื่องที่ Edge Micro ติดตั้งไว้แล้ว อย่างไรก็ตาม คุณจะกำหนดค่าจำนวนกระบวนการของผู้ปฏิบัติงานได้เมื่อเริ่มต้น Edge Micro โดยใช้ตัวเลือก --processes ในคำสั่ง start ตัวอย่างเช่น หากคุณ ต้องการให้หยุดตรวจจับอย่างฉับพลันเมื่อมีการส่งคำขอ 100 ครั้งในระยะเวลาที่กำหนด และหากคุณเริ่มใช้ Edge ทางไมโครเกตเวย์ที่มีตัวเลือก --processes 4 จากนั้นตั้งค่า allow: 25 ใน การกำหนดค่าช่วงหยุดที่เพิ่มขึ้น กล่าวโดยสรุป หลักการทั่วไปคือให้ตั้งการกำหนดค่า allow กับค่า "จำนวนการจับกุมที่เพิ่มขึ้นอย่างฉับพลันที่ต้องการ / จำนวนกระบวนการ"

การใช้ปลั๊กอินโควต้า

โควต้าจะระบุจำนวนข้อความคำขอที่แอปได้รับอนุญาตให้ส่งไปยัง API ในช่วง 1 ชั่วโมง วัน สัปดาห์ หรือเดือน เมื่อแอปถึงขีดจำกัดโควต้าแล้ว การเรียก API ถูกปฏิเสธ โปรดดูเพิ่มเติมที่ ความแตกต่างระหว่าง การจับกุมที่เพิ่มขึ้นอย่างรวดเร็วและโควต้า

กำลังเพิ่มปลั๊กอินโควต้า

ดูการเพิ่มและกำหนดค่าปลั๊กอิน

การกำหนดค่าผลิตภัณฑ์ใน Apigee ขอบ

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

  1. เข้าสู่ระบบบัญชีองค์กร Apigee Edge ของคุณ
  2. ใน Edge UI ให้เปิดผลิตภัณฑ์ที่เชื่อมโยงกับพร็อกซีที่รับรู้ถึงไมโครเกตเวย์ที่ ที่ต้องการใช้โควต้า
    1. เลือกผลิตภัณฑ์จากเมนูเผยแพร่ใน UI
    2. เปิดผลิตภัณฑ์ที่มี API ที่คุณต้องการใช้โควต้า
    3. คลิกแก้ไข
    4. ระบุช่วงโควต้าในช่องโควต้า เช่น คำขอ 100 รายการทุก 1 นาที หรือ 50,000 คำขอทุก 2 ชั่วโมง

  1. คลิกบันทึก
  2. ตรวจสอบว่าได้เพิ่มผลิตภัณฑ์ลงในแอปสำหรับนักพัฒนาซอฟต์แวร์แล้ว คุณจะต้องใช้คีย์จากแอปนี้เพื่อดำเนินการ การเรียก API ที่ตรวจสอบสิทธิ์แล้ว

ตัวอย่างการกำหนดค่าสำหรับโควต้า

edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
  plugins:
    dir: ../plugins
    sequence:
      - oauth
      - quota

ตัวเลือกการกำหนดค่าสำหรับโควต้า

ในการกำหนดค่าปลั๊กอินโควต้า ให้เพิ่มองค์ประกอบ quotas ลงในไฟล์การกำหนดค่า ดังที่ปรากฏในตัวอย่างต่อไปนี้

edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
  plugins:
    dir: ../plugins
    sequence:
      - oauth
      - quota
quotas:
    bufferSize:
      hour: 20000
      minute: 500
      month: 1
      default: 10000
    useDebugMpId: true
    failOpen: true
...
ตัวเลือก คำอธิบาย
bufferSize

(จำนวนเต็ม) การกำหนดค่า bufferSize ช่วยให้คุณปรับความถี่ของ Edge Microgateway ได้ ซิงค์จำนวนโควต้ากับ Apigee Edge ทำความเข้าใจ bufferSize ลองดูการกำหนดค่าตัวอย่างต่อไปนี้

quotas:
 bufferSize:
  minute: 500
  default: 10000
 useDebugMpId: true
 failOpen: true

โดยค่าเริ่มต้น ไมโครเกตเวย์จะซิงค์ตัวนับโควต้ากับ Apigee Edge ทุก 5 วินาทีหาก กำหนดช่วงโควต้าเป็น "นาที" การกำหนดค่าข้างต้นบอกว่าหากกำหนดช่วงโควต้าในผลิตภัณฑ์ API เป็น "นาที", Edge ไมโครเกตเวย์จะซิงค์กับ Edge เพื่อรับจำนวนโควต้าปัจจุบันหลังจากทุก คำขอ 500 รายการหรือหลังจากผ่านไป 5 วินาที แล้วแต่ว่าจะถึงอย่างใดก่อน สำหรับข้อมูลเพิ่มเติม ดูการทำความเข้าใจวิธีนับโควต้า

เวลาที่อนุญาต หน่วยการศึกษา ได้แก่ minute, hour, day week, month และ default

failOpen เมื่อเปิดใช้ฟีเจอร์นี้ หากเกิดข้อผิดพลาดในการประมวลผลโควต้า หรือหาก "โควต้า" คำขอไปยัง Edge ไม่สามารถอัปเดตตัวนับโควต้าระยะไกล โควต้า จะได้รับการประมวลผลตามจำนวนในเครื่องเท่านั้นจนกว่าโควต้าระยะไกลที่สำเร็จครั้งถัดไป การซิงค์เกิดขึ้น ในทั้ง 2 กรณีนี้ มีการตั้งค่าตัวบ่งชี้ quota-failed-open ใน อ็อบเจกต์คำขอ

วิธีเปิดใช้โควต้า "เปิดไม่สำเร็จ" โปรดกำหนดค่าต่อไปนี้

edgemicro:
...
quotas:
  failOpen: true
...
useDebugMpId ตั้งค่าแฟล็กนี้เป็น true เพื่อเปิดใช้การบันทึกของ MP รหัส (โปรแกรมประมวลผลข้อความ) ในการตอบสนองโควต้า

หากต้องการใช้ฟีเจอร์นี้ คุณต้องตั้งค่าการกำหนดค่าต่อไปนี้

edgemicro:
...
quotas:
  useDebugMpId: true
...

เมื่อตั้งค่า useDebugMpId การตอบกลับโควต้าจาก Edge จะมีรหัส MP และจะบันทึกโดย Edge Microgateway เช่น

{
    "allowed": 20,
    "used": 3,
    "exceeded": 0,
    "available": 17,
    "expiryTime": 1570748640000,
    "timestamp": 1570748580323,
    "debugMpId": "6a12dd72-5c8a-4d39-b51d-2c64f953de6a"
}
useRedis หากตั้งค่าเป็น true ปลั๊กอินจะใช้ Redis สำหรับที่เก็บโควต้าสำรอง โปรดดูรายละเอียดที่หัวข้อการใช้พื้นที่เก็บข้อมูลสำรองของ Redis สำหรับโควต้า

การทำความเข้าใจวิธีนับโควต้า

โดยค่าเริ่มต้น ไมโครเกตเวย์จะซิงค์ตัวนับโควต้ากับ Apigee Edge ทุก 5 วินาทีหาก กำหนดช่วงโควต้าเป็น "นาที" หากกำหนดช่วงเวลาเป็นระดับที่สูงกว่า "นาที" เช่น "สัปดาห์" หรือ "เดือน" ระยะเวลารีเฟรชเริ่มต้นคือ 1 นาที

โปรดทราบว่าคุณระบุช่วงเวลาของโควต้า ในผลิตภัณฑ์ API ที่กำหนดไว้ใน Apigee Edge ช่วงเวลาของโควต้าจะระบุจำนวนคำขอที่อนุญาต หนึ่งนาที ชั่วโมง วัน สัปดาห์ หรือเดือน ตัวอย่างเช่น ผลิตภัณฑ์ A อาจมีช่วงโควต้าเท่ากับ คำขอ 100 รายการต่อนาทีและผลิตภัณฑ์ B อาจมีช่วงโควต้าอยู่ที่ 10,000 รายการต่อชั่วโมง

YAML ของปลั๊กอิน Edge Microgateway quota การกำหนดค่าจะไม่กำหนดโควต้า interval; แต่จะเป็นวิธีปรับความถี่ที่ Edge Microgateway ในท้องถิ่น อินสแตนซ์จะซิงค์โควต้า ด้วย Apigee Edge

เช่น สมมติว่ามีผลิตภัณฑ์ API 3 รายการที่กำหนดไว้ใน Apigee Edge ด้วยสิ่งต่อไปนี้ ช่วงเวลาของโควต้าที่ระบุ:

  • ผลิตภัณฑ์ A มีโควต้าคำขอ 100 รายการต่อนาที
  • ผลิตภัณฑ์ B มีโควต้าคำขอ 5,000 รายการต่อชั่วโมง
  • ผลิตภัณฑ์ C มีโควต้าคำขอ 1000,000 รายการต่อเดือน

เมื่อคำนึงถึงการตั้งค่าโควต้าเหล่านี้แล้ว ปลั๊กอิน Edge Microgateway quota ควรใช้อย่างไร มีการกำหนดค่าอย่างไร แนวทางปฏิบัติแนะนำคือการกำหนดค่า Edge Microgateway กับช่วงเวลาการซิงค์ที่ ต่ำกว่าช่วงเวลาโควต้าที่กำหนดไว้ในผลิตภัณฑ์ API เช่น

quotas:
    bufferSize:
      hour: 2000
      minute: 50
      month: 1
      default: 10000

การกำหนดค่านี้กำหนดช่วงเวลาการซิงค์ต่อไปนี้สำหรับผลิตภัณฑ์ API ที่อธิบายไว้ ก่อนหน้านี้:

  • ตั้งค่าผลิตภัณฑ์ ก เป็น "นาที" ช่วงเวลา Edge Microgateway จะซิงค์กับ Edge หลังจาก ทุกๆ 50 คำขอหรือ 5 วินาที แล้วแต่ว่าจะถึงอย่างใดก่อน
  • ตั้งค่าผลิตภัณฑ์ B เป็น "ชั่วโมง" ช่วงเวลา Edge Microgateway จะซิงค์กับ Edge หลังจาก ทุกๆ คำขอที่ 2000 หรือ 1 นาที แล้วแต่ว่าจะถึงอย่างใดก่อน
  • ผลิตภัณฑ์ C ตั้งค่าเป็น "เดือน" ช่วงเวลา Edge Microgateway จะซิงค์กับ Edge หลังจาก ทุกๆ คำขอหรือ 1 นาที ขึ้นอยู่กับว่ากรณีใดจะเกิดขึ้นก่อน

ทุกครั้งที่อินสแตนซ์ทางไมโครเกตเวย์ซิงค์กับ Edge กำหนดจำนวนโควต้าเป็นจำนวนโควต้าที่ดึงมา

การตั้งค่า bufferSize ช่วยให้คุณปรับเปลี่ยนวิธีที่ตัวนับโควต้าได้ ซิงค์กับ Edge แล้ว ในสถานการณ์ที่มีผู้ใช้งานจำนวนมาก การตั้งค่า bufferSize อนุญาตให้ตัวนับบัฟเฟอร์ซิงค์ได้ก่อนที่การซิงค์ตามเวลาเริ่มต้นจะมีผล

ทำความเข้าใจขอบเขตโควต้า

มีการจำกัดจำนวนโควต้าสำหรับสภาพแวดล้อมในองค์กร เพื่อให้บรรลุเป้าหมายนี้ Edge Microgateway สร้างตัวระบุโควต้าที่รวม "org + env + appName + productName"

กำลังใช้ที่เก็บสำรองของ Redis เพื่อขอโควต้า

หากต้องการใช้ที่เก็บข้อมูลสำรองของ Redis สำหรับโควต้า ให้ใช้การกำหนดค่าเดียวกันกับที่ใช้สำหรับ ฟีเจอร์เครื่องมือซิงค์ข้อมูล ต่อไปนี้คือการกำหนดค่าพื้นฐานที่จำเป็นสำหรับการใช้ Redis พื้นที่เก็บข้อมูลโควต้า:

edgemicro:
  redisHost: localhost
  redisPort: 6379
  redisDb: 2
  redisPassword: codemaster

quotas:
  useRedis: true
โปรดดูรายละเอียดเกี่ยวกับพารามิเตอร์ edgemicro.redis* ที่หัวข้อการใช้เครื่องมือซิงค์ข้อมูล

การทดสอบปลั๊กอินโควต้า

เมื่อมีการเกินโควต้า สถานะ HTTP 403 จะส่งคืนไปยังไคลเอ็นต์ พร้อมด้วย ข้อความต่อไปนี้:

{"error": "exceeded quota"}

ความแตกต่าง ระหว่างการเพิ่มขึ้นหรือลดลงอย่างมากถึงโควต้า

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

ใช้นโยบายโควต้าเพื่อบังคับใช้สัญญาทางธุรกิจหรือ SLA กับนักพัฒนาซอฟต์แวร์และพาร์ทเนอร์แทน การจัดการการรับส่งข้อมูลเชิงปฏิบัติการ เช่น อาจมีการใช้โควต้าเพื่อจำกัดการเข้าชมสำหรับ เป็นบริการฟรี พร้อมกับให้สิทธิ์เข้าถึงเต็มรูปแบบสำหรับลูกค้าที่ชำระเงิน

ใช้การจับกุมอย่างฉับพลันเพื่อป้องกันการรับส่งข้อมูล API ที่เพิ่มขึ้นอย่างฉับพลัน โดยปกติแล้ว การจับกุมอย่างฉับพลัน เพื่อโจมตีการโจมตี DDoS หรือการโจมตีที่เป็นอันตรายอื่นๆ ที่อาจเกิดขึ้น