คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
Edge Microgateway เวอร์ชัน 3.2.x
ผู้ชม
หัวข้อนี้มีไว้สำหรับโอเปอเรเตอร์ Edge Microgateway ที่ต้องการใช้ปลั๊กอินที่มีอยู่ซึ่งติดตั้งด้วยไมโครเกตเวย์ นอกจากนี้ยังกล่าวถึงการจับกุมและปลั๊กอินโควต้าโดยละเอียด (ทั้ง 2 อย่างนี้รวมอยู่ในการติดตั้ง) หากคุณเป็นนักพัฒนาซอฟต์แวร์ที่ต้องการพัฒนาปลั๊กอินใหม่ โปรดดูพัฒนาปลั๊กอินที่กำหนดเอง
ปลั๊กอิน Edge Microgateway คืออะไร
ปลั๊กอินคือโมดูล Node.js ที่เพิ่มฟังก์ชันการทำงานให้กับ Edge Microgateway โมดูลปลั๊กอินจะมีรูปแบบที่สอดคล้องกันและจัดเก็บไว้ในตำแหน่งที่ Edge Microgateway รู้จัก ซึ่งช่วยให้ไมโครเกตเวย์ค้นพบและโหลดปลั๊กอินได้โดยอัตโนมัติ Edge Microgateway มีปลั๊กอินที่มีอยู่หลายรายการ และคุณยังสร้างปลั๊กอินที่กำหนดเองได้อีกด้วยตามที่อธิบายไว้ในพัฒนาปลั๊กอินที่กำหนดเอง
ปลั๊กอินที่มีอยู่ซึ่งมาพร้อมกับ Edge Microgateway
Edge Microgateway ให้มาพร้อมกับปลั๊กอินหลายรายการที่มีอยู่แล้วในขณะติดตั้ง ซึ่งรวมถึง
ปลั๊กอิน | เปิดใช้โดยค่าเริ่มต้นแล้ว | คำอธิบาย |
---|---|---|
Analytics | มี | ส่งข้อมูลวิเคราะห์จาก Edge Microgateway ไปยัง Apigee Edge |
oauth | มี | เพิ่มโทเค็น OAuth และการตรวจสอบคีย์ API ไปยัง Edge Microgateway โปรดดูการตั้งค่าและการกำหนดค่า Edge Microgateway |
โควต้า | ไม่ได้ | บังคับใช้โควต้าคำขอที่ส่งไปยัง Edge Microgateway ใช้ Apigee Edge เพื่อจัดเก็บและจัดการโควต้า โปรดดูการใช้ปลั๊กอินโควต้า |
การจับกุม | ไม่ได้ | ป้องกันการเข้าชมที่เพิ่มขึ้นอย่างรวดเร็วและการโจมตี DoS โปรดดูการใช้ปลั๊กอินการจับกุมการเพิ่มขึ้นอย่างฉับพลัน |
ตัวพิมพ์ใหญ่-เล็ก | ไม่ได้ | ตัวอย่างพร็อกซีที่มีความคิดเห็นซึ่งมีไว้เพื่อเป็นแนวทางเพื่อช่วยให้นักพัฒนาซอฟต์แวร์เขียนปลั๊กอินที่กำหนดเอง โปรดดู ปลั๊กอินตัวอย่าง Edge Microgateway |
accumulate-request | ไม่ได้ | รวบรวมข้อมูลคำขอลงในออบเจ็กต์เดียวก่อนส่งข้อมูลไปยังตัวแฮนเดิลถัดไปในเชนปลั๊กอิน มีประโยชน์สำหรับการเขียนปลั๊กอินการเปลี่ยนรูปแบบที่ต้องทำงานกับออบเจ็กต์เนื้อหาคำขอแบบสะสมเดี่ยว |
สะสม-คำตอบ | ไม่ได้ | รวบรวมข้อมูลการตอบกลับลงในออบเจ็กต์เดียวก่อนส่งข้อมูลไปยังตัวแฮนเดิลถัดไปในเชนปลั๊กอิน มีประโยชน์ในการเขียนปลั๊กอินการเปลี่ยนรูปแบบที่ต้องทำงานกับออบเจ็กต์เนื้อหาการตอบกลับแบบรวมรายการเดียว |
เปลี่ยนรูปแบบอักษรตัวพิมพ์ใหญ่ | ไม่ได้ | แปลงข้อมูลคำขอหรือการตอบกลับ ปลั๊กอินนี้แสดงให้เห็นถึงแนวทางปฏิบัติแนะนำของการใช้งานปลั๊กอิน Transform ปลั๊กอินตัวอย่างทำการเปลี่ยนรูปแบบที่ไม่สำคัญ (แปลงข้อมูลคำขอหรือการตอบกลับเป็นตัวพิมพ์ใหญ่) แต่จะนำไปปรับใช้เพื่อเปลี่ยนรูปแบบประเภทอื่นๆ เช่น XML เป็น JSON ได้อย่างง่ายดาย |
json2xml | ไม่ได้ | แปลงข้อมูลคำขอหรือการตอบกลับตามส่วนหัวการยอมรับหรือประเภทเนื้อหา โปรดดูรายละเอียดในเอกสารประกอบเกี่ยวกับปลั๊กอินใน GitHub |
หน่วยความจำโควต้า | ไม่ได้ | บังคับใช้โควต้าคำขอที่ส่งไปยัง 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 การปิดกั้นการขัดขวางจัดเก็บจำนวนคำขอดังกล่าวไว้ในบัฟเฟอร์ ทันทีที่มี "กรอบเวลา" การดำเนินการถัดไปเกิดขึ้น ระบบจะประมวลผลคำขอที่บัฟเฟอร์ก่อน โปรดดูหัวข้อการเพิ่มบัฟเฟอร์
การจับกุมการเพิ่มขึ้นอย่างฉับพลันทำงานอย่างไร
โดยทั่วไปแล้ว การยับยั้งการเพิ่มขึ้นอย่างฉับพลันเป็นวิธีป้องกันการเข้าชมที่เพิ่มขึ้นอย่างรวดเร็ว ไม่ใช่วิธีจำกัดปริมาณการรับส่งข้อมูลให้เป็นไปตามจำนวนคำขอที่ตั้งไว้เท่านั้น 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 ที่ทำงานอยู่ การจับกุมที่เพิ่มขึ้นจะคำนวณจำนวนคำขอที่อนุญาตต่อกระบวนการของผู้ปฏิบัติงาน โดยค่าเริ่มต้น จำนวนการประมวลผล Edge Micro จะเท่ากับจำนวน CPU ของเครื่องที่ติดตั้ง Edge Micro ไว้ อย่างไรก็ตาม คุณสามารถกำหนดค่าจำนวนกระบวนการของผู้ปฏิบัติงานเมื่อคุณเริ่มต้น Edge Micro
โดยใช้ตัวเลือก --processes
ในคำสั่ง start
ได้ ตัวอย่างเช่น หากต้องการให้การควบคุมการขัดขวางการเพิ่มขึ้นทริกเกอร์เมื่อมีคำขอ 100 รายการในระยะเวลาที่กำหนด และหากคุณเริ่มต้น Edge Microgateway ด้วยตัวเลือก --processes 4
ให้ตั้งค่า allow: 25
ในการกำหนดค่าการตรึงการเพิ่มขึ้น กล่าวโดยสรุป กฎสำคัญคือการตั้งค่าพารามิเตอร์การกำหนดค่า allow
เป็นค่า "จำนวนการควบคุมการเพิ่มขึ้นที่ต้องการ / จำนวนกระบวนการที่ต้องการ"
การใช้ปลั๊กอินโควต้า
โควต้าจะระบุจำนวนข้อความคำขอที่แอปได้รับอนุญาตให้ส่งไปยัง API ในช่วงเวลา 1 ชั่วโมง วัน สัปดาห์ หรือเดือน เมื่อแอปใช้โควต้าถึงขีดจำกัดแล้ว การเรียก API ที่ตามมาจะถูกปฏิเสธ ดูข้อมูลเพิ่มเติมเกี่ยวกับการจับกุมการเพิ่มขึ้นและโควต้าแตกต่างกันอย่างไร
การเพิ่มปลั๊กอินโควต้า
การกำหนดค่าผลิตภัณฑ์ใน Apigee Edge
คุณจะกำหนดค่าโควต้าใน UI ของ Apigee Edge ที่คุณกำหนดค่าผลิตภัณฑ์ API ได้ คุณต้องทราบว่าผลิตภัณฑ์ใดมีพร็อกซี Microgateway-Aware ที่คุณต้องการจำกัดโควต้า คุณต้องเพิ่มผลิตภัณฑ์นี้ลงในแอปของนักพัฒนาซอฟต์แวร์ เมื่อคุณทำการเรียก API ที่มีการตรวจสอบสิทธิ์โดยใช้คีย์ในแอปนักพัฒนาซอฟต์แวร์ โควต้าจะใช้กับการเรียก API เหล่านั้น
- ลงชื่อเข้าสู่ระบบบัญชีองค์กร Apigee Edge
- ใน Edge UI ให้เปิดผลิตภัณฑ์ที่เชื่อมโยงกับพร็อกซี microgateway-Aware ที่คุณต้องการใช้โควต้า
- ใน 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 (ตัวประมวลผลข้อความ) ในการตอบสนองโควต้า
หากต้องการใช้ฟีเจอร์นี้ คุณต้องกำหนดค่าดังต่อไปนี้ 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 ช่วงโควต้าจะระบุจำนวนคำขอที่อนุญาตสำหรับนาที ชั่วโมง วัน สัปดาห์ หรือเดือน เช่น ผลิตภัณฑ์ A อาจมีช่วงโควต้าคำขอ 100 รายการต่อนาที และผลิตภัณฑ์ B อาจมีช่วงโควต้า 10,000 คำขอต่อชั่วโมง
การกำหนดค่า YAML ของปลั๊กอิน Edge Microgateway quota
จะไม่กำหนดช่วงโควต้า แต่ให้วิธีในการปรับความถี่ที่อินสแตนซ์ 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 ที่อธิบายไว้ก่อนหน้านี้
- ผลิตภัณฑ์ A ตั้งค่าเป็นช่วง "นาที" Edge Microgateway จะซิงค์กับ Edge หลังจากคำขอที่ 50 หรือทุก 5 วินาที แล้วแต่ว่ากรณีใดเกิดก่อน
- ผลิตภัณฑ์ B มีการตั้งค่าเป็นช่วง "ชั่วโมง" Edge Microgateway จะซิงค์กับ Edge หลังจากคำขอที่ 2, 000 หรือทุก 1 นาที ขึ้นอยู่กับว่ากรณีใดจะเกิดขึ้นก่อน
- ผลิตภัณฑ์ C มีการตั้งค่าเป็นช่วง "เดือน" Edge Microgateway จะซิงค์กับ Edge หลังจากคำขอทุกรายการหรือ 1 นาที ขึ้นอยู่กับว่ากรณีใดจะเกิดขึ้นก่อน
ทุกครั้งที่อินสแตนซ์ Microgateway ซิงค์กับ 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 ในช่วงเวลา 1 ชั่วโมง วัน สัปดาห์ หรือเดือน นโยบายโควต้าบังคับใช้ขีดจำกัดการใช้งานในแอปไคลเอ็นต์โดยดูแลรักษาตัวนับแบบกระจายซึ่งจะนับคำขอขาเข้า
ใช้นโยบายโควต้าเพื่อบังคับใช้สัญญาหรือ SLA ทางธุรกิจกับนักพัฒนาซอฟต์แวร์และพาร์ทเนอร์แทนการจัดการการเข้าชมในส่วนการดำเนินงาน เช่น อาจมีการใช้โควต้าเพื่อจำกัดการเข้าชมของบริการฟรี แต่ในขณะเดียวกันก็อนุญาตให้เข้าถึงอย่างเต็มรูปแบบสำหรับลูกค้าที่ชำระเงิน
ใช้การจับกุมการเพิ่มขึ้นอย่างรวดเร็วเพื่อป้องกันการรับส่งข้อมูลของ API ที่พุ่งสูงขึ้นอย่างกะทันหัน โดยปกติแล้ว การจับกุมอย่างฉับพลันจะใช้เพื่อขัดขวาง DDoS หรือการโจมตีที่เป็นอันตรายอื่นๆ