คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ
Apigee X info
Edge Microgateway v. 3.2.x
กลุ่มเป้าหมาย
หัวข้อนี้มีไว้สำหรับผู้ปฏิบัติงาน Edge Microgateway ที่ต้องการใช้ปลั๊กอินที่มีอยู่ซึ่ง ติดตั้งพร้อมกับ Microgateway นอกจากนี้ยังอธิบายรายละเอียดเกี่ยวกับปลั๊กอินการป้องกันการเพิ่มขึ้นของทราฟิกและโควต้า (ทั้ง 2 อย่างรวมอยู่ในการติดตั้ง) หากคุณเป็นนักพัฒนาแอปที่ต้องการพัฒนาปลั๊กอินใหม่ โปรดดูพัฒนา ปลั๊กอินที่กำหนดเอง
ปลั๊กอิน Edge Microgateway คืออะไร
ปลั๊กอินคือโมดูล Node.js ที่เพิ่มฟังก์ชันการทำงานให้กับ Edge Microgateway โมดูลปลั๊กอิน มีรูปแบบที่สอดคล้องกันและจัดเก็บไว้ในตำแหน่งที่ Edge Microgateway รู้จัก ทำให้ microgateway ค้นหาและโหลดโมดูลเหล่านั้นได้โดยอัตโนมัติ Edge Microgateway มีปลั๊กอินที่มีอยู่หลายรายการ และคุณยังสร้างปลั๊กอินที่กำหนดเองได้ด้วย ดังที่อธิบายไว้ในพัฒนาปลั๊กอินที่กำหนดเอง
ปลั๊กอินที่มีอยู่ซึ่งมาพร้อมกับ Edge Microgateway
ปลั๊กอินที่มีอยู่หลายรายการจะมาพร้อมกับ Edge Microgateway เมื่อติดตั้ง ซึ่งได้แก่
| ปลั๊กอิน | เปิดใช้โดยค่าเริ่มต้นแล้ว | คำอธิบาย |
|---|---|---|
| Analytics | ใช่ | ส่งข้อมูลวิเคราะห์จาก Edge Microgateway ไปยัง Apigee Edge |
| oauth | ใช่ | เพิ่มการตรวจสอบโทเค็น OAuth และคีย์ API ลงใน Edge Microgateway ดูการตั้งค่า และการกำหนดค่า Edge Microgateway |
| โควต้า | ไม่ | บังคับใช้โควต้าในคำขอไปยัง Edge Microgateway ใช้ Apigee Edge เพื่อจัดเก็บและจัดการ โควต้า ดูหัวข้อการใช้ปลั๊กอินโควต้า |
| spikearrest | ไม่ | ป้องกันการรับส่งข้อมูลที่เพิ่มขึ้นอย่างรวดเร็วและการโจมตีแบบ DoS โปรดดูหัวข้อการใช้ปลั๊กอินการป้องกันช่วงที่เพิ่มขึ้น |
| header-uppercase | ไม่ | พร็อกซีตัวอย่างที่มีคำอธิบายมีจุดประสงค์เพื่อเป็นคำแนะนำในการช่วยให้นักพัฒนาแอปเขียนปลั๊กอินที่กำหนดเอง ดู ปลั๊กอินตัวอย่างของ Edge Microgateway |
| accumulate-request | ไม่ | รวบรวมข้อมูลคำขอเป็นออบเจ็กต์เดียว ก่อนส่งข้อมูลไปยังตัวแฮนเดิลถัดไป ในเชนของปลั๊กอิน มีประโยชน์สำหรับการเขียนปลั๊กอินการแปลงที่ต้องดำเนินการกับออบเจ็กต์เนื้อหาคำขอที่สะสมรายการเดียว |
| accumulate-response | ไม่ | สะสมข้อมูลการตอบกลับเป็นออบเจ็กต์เดียวก่อนส่งข้อมูลไปยังแฮนเดิลเลอร์ถัดไป ในเชนของปลั๊กอิน มีประโยชน์สำหรับการเขียนปลั๊กอินการแปลงที่ต้องดำเนินการกับออบเจ็กต์เนื้อหาการตอบกลับแบบสะสมรายการเดียว |
| transform-uppercase | ไม่ | แปลงข้อมูลคำขอหรือการตอบกลับ ปลั๊กอินนี้แสดงถึงแนวทางปฏิบัติแนะนำ ในการติดตั้งใช้งานปลั๊กอินการแปลง ปลั๊กอินตัวอย่างจะทำการแปลงที่เรียบง่าย (แปลงข้อมูลคำขอหรือการตอบกลับเป็นตัวพิมพ์ใหญ่) แต่สามารถปรับเปลี่ยนให้ ทำการแปลงประเภทอื่นๆ ได้อย่างง่ายดาย เช่น XML เป็น JSON |
| json2xml | ไม่ | แปลงข้อมูลคำขอหรือการตอบกลับตามส่วนหัว Accept หรือ Content-Type โปรดดูรายละเอียดในเอกสารประกอบของปลั๊กอินใน GitHub |
| quota-memory | ไม่ | บังคับใช้โควต้าในคำขอไปยัง Edge Microgateway จัดเก็บและจัดการโควต้าในหน่วยความจำภายใน |
| healthcheck | ไม่ | แสดงข้อมูลเกี่ยวกับกระบวนการ Edge Microgateway เช่น การใช้งานหน่วยความจำ การใช้ CPU เป็นต้น หากต้องการใช้ปลั๊กอิน ให้เรียกใช้ URL /healthcheck ในอินสแตนซ์ Edge Microgateway ปลั๊กอินนี้มีไว้เพื่อเป็นตัวอย่างที่คุณใช้ ติดตั้งใช้งานปลั๊กอินการตรวจสอบสถานะของคุณเองได้ |
ตำแหน่งค้นหาปลั๊กอินที่มีอยู่
ปลั๊กอินที่มีอยู่ซึ่งรวมอยู่ใน Edge Microgateway จะอยู่ที่นี่ โดย [prefix]
คือไดเรกทอรีคำนำหน้า npm ดู
ตำแหน่งที่ติดตั้ง Edge Microgateway หากคุณหาไดเรกทอรีนี้ไม่พบ
[prefix]/lib/node_modules/edgemicro/node_modules/microgateway-plugins
การเพิ่มและกำหนดค่าปลั๊กอิน
ทำตามรูปแบบนี้เพื่อเพิ่มและกำหนดค่าปลั๊กอิน
- หยุด Edge Microgateway
- เปิดไฟล์การกำหนดค่า Edge Microgateway โปรดดูรายละเอียดที่หัวข้อ ทำการเปลี่ยนแปลงการกำหนดค่าสำหรับตัวเลือก
- เพิ่มปลั๊กอินไปยังองค์ประกอบ
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
- กำหนดค่าปลั๊กอิน ปลั๊กอินบางตัวมีพารามิเตอร์ที่ไม่บังคับซึ่งคุณกำหนดค่าได้ใน
ไฟล์กำหนดค่า เช่น คุณสามารถเพิ่มกลุ่มคำสั่งต่อไปนี้เพื่อกำหนดค่าปลั๊กอินการป้องกันการเพิ่มขึ้นของทราฟิก
ดูข้อมูลเพิ่มเติมได้ที่การใช้ปลั๊กอินการป้องกันช่วงที่เพิ่มขึ้น
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
- บันทึกไฟล์
- รีสตาร์ทหรือโหลด 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: จำนวนคำขอสูงสุดที่อนุญาตในช่วง timeUnit ดูหากคุณเรียกใช้กระบวนการ Edge Micro หลายรายการด้วย
- bufferSize: (ไม่บังคับ ค่าเริ่มต้น = 0) หาก bufferSize > 0 การควบคุมอัตราการรับส่ง จะจัดเก็บคำขอจำนวนนี้ไว้ในบัฟเฟอร์ ทันทีที่ "ช่วงเวลา" การดำเนินการถัดไปเกิดขึ้น ระบบจะประมวลผลคำขอที่บัฟเฟอร์ไว้ก่อน ดูเพิ่มเติมที่การเพิ่ม บัฟเฟอร์
Spike Arrest ทำงานอย่างไร
ให้มองว่าการจำกัดการเพิ่มขึ้นอย่างรวดเร็วเป็นวิธีป้องกันการรับส่งข้อมูลที่เพิ่มขึ้นอย่างรวดเร็วโดยทั่วไป ไม่ใช่ วิธีจำกัดการรับส่งข้อมูลให้มีจำนวนคำขอที่เฉพาะเจาะจง 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 ภายใน 1 วินาทีจะดำเนินการไม่สำเร็จ
เมื่อเกินขีดจำกัด
หากจำนวนคำขอเกินขีดจำกัดภายในช่วงเวลาที่ระบุ การป้องกันการเพิ่มขึ้นของทราฟิก จะแสดงข้อความแสดงข้อผิดพลาดนี้พร้อมสถานะ HTTP 503
{"error": "spike arrest policy violated"}การเพิ่มช่วงเผื่อเวลา
คุณมีตัวเลือกในการเพิ่มบัฟเฟอร์ลงในนโยบาย สมมติว่าคุณตั้งค่าบัฟเฟอร์เป็น 10 คุณจะเห็นว่า API ไม่แสดงข้อผิดพลาดทันทีเมื่อคุณเกินขีดจํากัดการควบคุมการเพิ่มขึ้นของทราฟิก แต่ระบบจะบัฟเฟอร์คำขอ (สูงสุดตามจำนวนที่ระบุ) และประมวลผลคำขอที่บัฟเฟอร์ทันทีที่ช่วงเวลาดำเนินการที่เหมาะสมถัดไปพร้อมใช้งาน ค่าเริ่มต้นของ bufferSize คือ 0
หากคุณเรียกใช้กระบวนการ Edge Micro หลายรายการ
จำนวนคำขอที่อนุญาตจะขึ้นอยู่กับจำนวนกระบวนการของ Edge Micro Worker ที่
กำลังทำงานอยู่ การควบคุมอัตราคำขอจะคำนวณจำนวนคำขอที่อนุญาตต่อกระบวนการ Worker โดยค่าเริ่มต้น
จำนวนกระบวนการ Edge Micro จะเท่ากับจำนวน CPU ในเครื่องที่ติดตั้ง Edge Micro
ไว้ อย่างไรก็ตาม คุณสามารถกำหนดค่าจำนวนกระบวนการของ Worker เมื่อเริ่ม Edge Micro
โดยใช้ตัวเลือก --processes ในคำสั่ง start ตัวอย่างเช่น หากคุณต้องการให้การป้องกันการเพิ่มขึ้นของจำนวนคำขอทริกเกอร์ที่คำขอ 100 รายการในช่วงเวลาที่กำหนด และหากคุณเริ่ม Edge
Microgateway ด้วยตัวเลือก --processes 4 ให้ตั้งค่า allow: 25 ในการกำหนดค่าการป้องกันการเพิ่มขึ้นของจำนวนคำขอ โดยสรุปแล้ว หลักการทั่วไปคือการตั้งค่าพารามิเตอร์ allow config
เป็นค่า "จำนวนการป้องกันการเพิ่มขึ้นที่ต้องการ / จำนวนกระบวนการ"
การใช้ปลั๊กอินโควต้า
โควต้าจะระบุจำนวนข้อความคำขอที่แอปได้รับอนุญาตให้ส่งไปยัง API ในช่วงเวลา 1 ชั่วโมง 1 วัน 1 สัปดาห์ หรือ 1 เดือน เมื่อแอปใช้โควต้าถึงขีดจำกัด ระบบจะปฏิเสธการเรียก API ครั้งต่อๆ ไป ดูเพิ่มเติมที่การป้องกันการเพิ่มขึ้นของทราฟิกและการจำกัดโควต้าแตกต่างกันอย่างไร
การเพิ่มปลั๊กอินโควต้า
ดูหัวข้อการเพิ่มและกำหนดค่าปลั๊กอิน
การกำหนดค่าผลิตภัณฑ์ใน Apigee Edge
คุณกำหนดค่าโควต้าใน UI ของ Apigee Edge ซึ่งเป็นที่ที่คุณกำหนดค่าผลิตภัณฑ์ API คุณต้องทราบว่า ผลิตภัณฑ์ใดมีพร็อกซีที่รองรับ Microgateway ที่คุณต้องการจำกัดด้วยโควต้า คุณต้องเพิ่มผลิตภัณฑ์นี้ลงในแอปของนักพัฒนาซอฟต์แวร์ เมื่อคุณทำการเรียก API ที่ได้รับการตรวจสอบสิทธิ์โดยใช้คีย์ในแอปของนักพัฒนาซอฟต์แวร์ ระบบจะใช้โควต้ากับการเรียก API เหล่านั้น
- เข้าสู่ระบบบัญชีขององค์กร Apigee Edge
- ใน UI ของ Edge ให้เปิดผลิตภัณฑ์ที่เชื่อมโยงกับพร็อกซีที่รับรู้ถึง Microgateway ซึ่งคุณต้องการ
ใช้โควต้า
- ใน UI ให้เลือกผลิตภัณฑ์จากเมนูเผยแพร่
- เปิดผลิตภัณฑ์ที่มี API ที่คุณต้องการใช้โควต้า
- คลิกแก้ไข
- ในช่องโควต้า ให้ระบุช่วงโควต้า เช่น คำขอ 100 รายการทุกๆ
1 นาที หรือ 50,000 คำขอทุก 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 |
(จำนวนเต็ม) quotas: bufferSize: minute: 500 default: 10000 useDebugMpId: true failOpen: true โดยค่าเริ่มต้น Microgateway จะซิงค์ตัวนับโควต้ากับ Apigee Edge ทุกๆ 5 วินาที หาก ตั้งค่าช่วงเวลาโควต้าเป็น "นาที" การกำหนดค่าข้างต้นระบุว่าหากตั้งค่าช่วงโควต้าในผลิตภัณฑ์ API เป็น "นาที" Edge Microgateway จะซิงค์กับ Edge เพื่อรับจำนวนโควต้าปัจจุบันหลังจากคำขอทุกๆ 500 รายการหรือหลังจาก 5 วินาที แล้วแต่ว่าสิ่งใดจะเกิดขึ้นก่อน ดูข้อมูลเพิ่มเติมได้ที่ทำความเข้าใจวิธีนับโควต้า
หน่วยเวลาที่อนุญาต ได้แก่ |
failOpen |
เมื่อเปิดใช้ฟีเจอร์นี้ หากเกิดข้อผิดพลาดในการประมวลผลโควต้า
หรือหากคำขอ "ใช้โควต้า" ไปยัง Edge อัปเดตตัวนับโควต้าจากระยะไกลไม่สำเร็จ ระบบจะประมวลผลโควต้า
ตามจำนวนในเครื่องเท่านั้นจนกว่าการซิงค์โควต้าจากระยะไกลครั้งถัดไปจะสำเร็จ ในทั้ง 2 กรณีนี้ ระบบจะตั้งค่าสถานะ quota-failed-open ใน
ออบเจ็กต์คำขอ
หากต้องการเปิดใช้ฟีเจอร์ "เปิดเมื่อล้มเหลว" ของโควต้า ให้ตั้งค่าการกำหนดค่าต่อไปนี้ edgemicro: ... quotas: failOpen: true |
useDebugMpId |
ตั้งค่าสถานะนี้เป็น true เพื่อเปิดใช้การบันทึกรหัส MP
(Message Processor)
ในการตอบกลับโควต้า
คุณต้องตั้งค่าต่อไปนี้จึงจะใช้ฟีเจอร์นี้ได้ edgemicro: ... quotas: useDebugMpId: true ...
เมื่อตั้งค่า {
"allowed": 20,
"used": 3,
"exceeded": 0,
"available": 17,
"expiryTime": 1570748640000,
"timestamp": 1570748580323,
"debugMpId": "6a12dd72-5c8a-4d39-b51d-2c64f953de6a"
} |
useRedis |
หากตั้งค่าเป็น true ปลั๊กอินจะใช้ Redis สำหรับที่เก็บข้อมูลโควต้า
โปรดดูรายละเอียดที่หัวข้อการใช้ที่เก็บข้อมูลสำรอง Redis สำหรับโควต้า |
ทำความเข้าใจวิธีกำหนดโควต้า
โดยค่าเริ่มต้น Microgateway จะซิงค์ตัวนับโควต้ากับ Apigee Edge ทุกๆ 5 วินาที หาก ตั้งค่าช่วงเวลาโควต้าเป็น "นาที" หากตั้งค่าช่วงเวลาเป็นระดับที่สูงกว่า "นาที" เช่น "สัปดาห์" หรือ "เดือน" ระยะเวลาการรีเฟรชเริ่มต้นจะเป็น 1 นาที
โปรดทราบว่าคุณต้องระบุช่วงโควต้า ในผลิตภัณฑ์ API ที่กำหนดไว้ใน Apigee Edge ช่วงเวลาของโควต้าจะระบุจำนวนคำขอที่อนุญาต ต่อนาที ชั่วโมง วัน สัปดาห์ หรือเดือน เช่น ผลิตภัณฑ์ ก อาจมีช่วงเวลาโควต้าเป็น 100 คำขอต่อนาที และผลิตภัณฑ์ ข อาจมีช่วงเวลาโควต้าเป็น 10,000 คำขอต่อชั่วโมง
การกำหนดค่า YAML ของปลั๊กอิน Edge Microgateway quotaไม่ได้ตั้งค่าช่วงเวลาของโควต้า
แต่จะให้วิธีปรับความถี่ที่อินสแตนซ์ Edge Microgateway ในเครื่องซิงค์จำนวนโควต้า
กับ Apigee Edge
ตัวอย่างเช่น สมมติว่ามีผลิตภัณฑ์ API 3 รายการที่กำหนดไว้ใน Apigee Edge โดยมีช่วงโควต้าดังนี้
- ผลิตภัณฑ์ ก. มีโควต้าคำขอ 100 รายการต่อนาที
- ผลิตภัณฑ์ B มีโควต้าคำขอ 5,000 รายการต่อชั่วโมง
- ผลิตภัณฑ์ C มีโควต้าคำขอ 1,000,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 หลังจาก ทุกๆ 2, 000 คำขอหรือ 1 นาที แล้วแต่ว่าสิ่งใดจะเกิดขึ้นก่อน
- ผลิตภัณฑ์ C ตั้งค่าเป็นช่วง "เดือน" Edge Microgateway จะซิงค์กับ Edge หลังจาก คำขอแต่ละรายการหรือ 1 นาที แล้วแต่ว่าสิ่งใดจะเกิดขึ้นก่อน
ทุกครั้งที่อินสแตนซ์ Microgateway ซิงค์กับ Edge ระบบจะตั้งค่าจำนวนโควต้าของ Microgateway เป็นจำนวนโควต้าที่เรียกข้อมูลมา
bufferSize การตั้งค่าช่วยให้คุณปรับวิธีซิงค์ตัวนับโควต้า
กับ Edge ได้ ในสถานการณ์ที่มีการเข้าชมสูง bufferSizeการตั้งค่า
จะช่วยให้ตัวนับบัฟเฟอร์ซิงค์ได้ก่อนที่จะมีการเรียกใช้การซิงค์ตามเวลาเริ่มต้น
ทำความเข้าใจขอบเขตโควต้า
การนับโควต้าจะกำหนดขอบเขตไว้ที่สภาพแวดล้อมในองค์กร หากต้องการให้ได้ขอบเขตนี้ Edge Microgateway จะสร้างตัวระบุโควต้าซึ่งเป็นการรวมกันของ "org + env + appName + productName"
การใช้ที่เก็บข้อมูลสำรอง Redis สำหรับโควต้า
หากต้องการใช้ที่เก็บข้อมูลสำรอง Redis สำหรับโควต้า ให้ใช้การกำหนดค่าเดียวกับที่ใช้สำหรับ ฟีเจอร์ Synchronizer การกำหนดค่าพื้นฐานที่จำเป็นต่อการใช้ Redis สำหรับ ที่เก็บข้อมูลโควต้ามีดังนี้
edgemicro: redisHost: localhost redisPort: 6379 redisDb: 2 redisPassword: codemaster quotas: useRedis: true
edgemicro.redis* ที่หัวข้อการใช้ตัวซิงโครไนซ์
การทดสอบปลั๊กอินโควต้า
เมื่อใช้โควต้าเกิน ระบบจะแสดงสถานะ HTTP 403 กลับไปยังไคลเอ็นต์พร้อมข้อความต่อไปนี้
{"error": "exceeded quota"}การป้องกันการเพิ่มขึ้นของทราฟิกและการจำกัดโควต้าแตกต่างกันอย่างไร
คุณควรเลือกเครื่องมือที่เหมาะสมกับงานที่ทำ นโยบายโควต้าจะกำหนดค่า จำนวนข้อความคำขอที่แอปไคลเอ็นต์ได้รับอนุญาตให้ส่งไปยัง API ในช่วง 1 ชั่วโมง 1 วัน 1 สัปดาห์ หรือ 1 เดือน นโยบายโควต้าจะบังคับใช้ขีดจำกัดการใช้งานในแอปไคลเอ็นต์โดย การดูแลตัวนับแบบกระจายที่นับคำขอขาเข้า
ใช้นโยบายโควต้าเพื่อบังคับใช้สัญญาทางธุรกิจหรือ SLA กับนักพัฒนาแอปและพาร์ทเนอร์ แทนที่จะใช้เพื่อการจัดการการเข้าชมในการดำเนินงาน เช่น อาจใช้โควต้าเพื่อจำกัดการเข้าชมสำหรับบริการฟรี ขณะเดียวกันก็อนุญาตให้ลูกค้าที่ชำระเงินเข้าถึงได้อย่างเต็มที่
ใช้การควบคุมอัตราการเข้าชมเพื่อป้องกันการเข้าชม API ที่เพิ่มขึ้นอย่างฉับพลัน โดยปกติแล้ว การจำกัดการเพิ่มขึ้นของทราฟิกจะใช้เพื่อป้องกันการโจมตีแบบ DDoS หรือการโจมตีที่เป็นอันตรายอื่นๆ