คุณกำลังดูเอกสารประกอบ 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
การเพิ่มและกำหนดค่าปลั๊กอิน
ทำตามรูปแบบนี้เพื่อเพิ่มและกำหนดค่าปลั๊กอิน
- หยุด 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: จำนวนคำขอสูงสุดที่อนุญาตในระหว่างหน่วยเวลา โปรดดู ถ้าคุณใช้ 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 เหล่านั้น
- เข้าสู่ระบบบัญชีองค์กร Apigee Edge ของคุณ
- ใน Edge UI ให้เปิดผลิตภัณฑ์ที่เชื่อมโยงกับพร็อกซีที่รับรู้ถึงไมโครเกตเวย์ที่
ที่ต้องการใช้โควต้า
- เลือกผลิตภัณฑ์จากเมนูเผยแพร่ใน 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 โดยค่าเริ่มต้น ไมโครเกตเวย์จะซิงค์ตัวนับโควต้ากับ Apigee Edge ทุก 5 วินาทีหาก กำหนดช่วงโควต้าเป็น "นาที" การกำหนดค่าข้างต้นบอกว่าหากกำหนดช่วงโควต้าในผลิตภัณฑ์ API เป็น "นาที", Edge ไมโครเกตเวย์จะซิงค์กับ Edge เพื่อรับจำนวนโควต้าปัจจุบันหลังจากทุก คำขอ 500 รายการหรือหลังจากผ่านไป 5 วินาที แล้วแต่ว่าจะถึงอย่างใดก่อน สำหรับข้อมูลเพิ่มเติม ดูการทำความเข้าใจวิธีนับโควต้า
เวลาที่อนุญาต
หน่วยการศึกษา ได้แก่ |
failOpen |
เมื่อเปิดใช้ฟีเจอร์นี้ หากเกิดข้อผิดพลาดในการประมวลผลโควต้า
หรือหาก "โควต้า" คำขอไปยัง Edge ไม่สามารถอัปเดตตัวนับโควต้าระยะไกล โควต้า
จะได้รับการประมวลผลตามจำนวนในเครื่องเท่านั้นจนกว่าโควต้าระยะไกลที่สำเร็จครั้งถัดไป
การซิงค์เกิดขึ้น ในทั้ง 2 กรณีนี้ มีการตั้งค่าตัวบ่งชี้ quota-failed-open ใน
อ็อบเจกต์คำขอ
วิธีเปิดใช้โควต้า "เปิดไม่สำเร็จ" โปรดกำหนดค่าต่อไปนี้ edgemicro: ... quotas: failOpen: true |
useDebugMpId |
ตั้งค่าแฟล็กนี้เป็น true เพื่อเปิดใช้การบันทึกของ MP
รหัส (โปรแกรมประมวลผลข้อความ)
ในการตอบสนองโควต้า
หากต้องการใช้ฟีเจอร์นี้ คุณต้องตั้งค่าการกำหนดค่าต่อไปนี้ 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 สำหรับโควต้า |
การทำความเข้าใจวิธีนับโควต้า
โดยค่าเริ่มต้น ไมโครเกตเวย์จะซิงค์ตัวนับโควต้ากับ 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 หรือการโจมตีที่เป็นอันตรายอื่นๆ ที่อาจเกิดขึ้น