أنت تعرض مستندات Apigee Edge.
انتقل إلى
مستندات Apigee X. معلومات
Edge Microgateway الإصدار 3.0.x
الجمهور
هذا الموضوع مخصص لمشغلي Edge Microgateway الذين يرغبون في استخدام المكونات الإضافية الحالية التي باستخدام المدخل الصغير. كما تناقش أيضًا الزيادة المفاجئة في عدد الاعتقالات والمكوّنات الإضافية للحصة في التفاصيل (يتم تضمين كلتيهما مع عملية التثبيت). إذا كنت مطورًا وتريد تطوير المكونات الإضافية، راجع تطوير المكونات الإضافية المخصصة.
ما هو المكوّن الإضافي Edge Microgateway؟
المكون الإضافي هو وحدة Node.js تضيف وظائف إلى بوابة Edge Microgateway. وحدات المكونات الإضافية تتبع نمطًا ثابتًا ويتم تخزينها في مكان معروف ببوابة Edge Microgateway، مما يمكن لاكتشافها وتحميلها تلقائيًا. يشمل ممر Edge Microgateway العديد من ويمكنك إنشاء مكونات إضافية مخصصة، كما هو موضح في تطوير مكونات إضافية مخصصة.
المكوّنات الإضافية الحالية المضمَّنة في شبكة Edge مدخل مصغّر
يتم توفير العديد من المكونات الإضافية الحالية مع بوابة Edge Microgateway عند التثبيت. هذه تشمل:
المكوّن الإضافي | مفعَّلة تلقائيًا | الوصف |
---|---|---|
إحصاءات | نعم | يرسل بيانات الإحصاءات من Edge Microgateway إلى Apigee Edge. |
بروتوكول OAuth | نعم | إضافة رمز OAuth المميز والتحقق من مفتاح واجهة برمجة التطبيقات إلى Edge Microgateway. راجع الإعدادات وضبط إعدادات بوابة Edge Microgateway |
النسبة | لا | يؤدي هذا الخيار إلى فرض حصة على الطلبات الموجّهة إلى Edge Microgateway. تستخدم Apigee Edge لتخزين البيانات وإدارتها الحصص. يمكنك مراجعة استخدام المكوّن الإضافي للحصة. |
مرض الركبة | لا | يوفر الحماية من الارتفاعات المفاجئة في حركة الزيارات وهجمات الحرمان من الخدمات. راجِع استخدام المكوّن الإضافي لضبط الارتفاع المفاجئ. |
أحرف كبيرة للرأس | لا | نموذج لخادم وكيل مُعلّق كدليل لمساعدة المطوّرين على كتابة مكوّنات إضافية مخصّصة. عرض نموذج المكوّن الإضافي Edge Microgateway |
accumulate-request | لا | تجمع بيانات الطلب في عنصر واحد قبل تمرير البيانات إلى العنصر التالي في سلسلة المكونات الإضافية. مفيد لكتابة مكونات التحويل الإضافية التي تحتاج إلى العمل على كائن محتوى طلب واحد متراكم. |
accumulate-response | لا | تجمع بيانات الاستجابة في كائن واحد قبل تمرير البيانات إلى العنصر التالي في سلسلة المكونات الإضافية. مفيد لكتابة مكونات التحويل الإضافية التي تحتاج إلى العمل على كائن واحد متراكم لمحتوى الاستجابة. |
تحويل الأحرف الكبيرة | لا | تحوِّل بيانات الطلب أو الردّ. يمثل هذا المكون الإضافي أفضل الممارسات تنفيذ أحد مكونات التحويل الإضافية. يُجري المثال الإضافي عملية تحويل بسيطة (تحويل بيانات الطلب أو الاستجابة إلى أحرف كبيرة) ومع ذلك، يمكن تكييفه بسهولة مع إجراء أنواع أخرى من التحويلات، مثل XML إلى JSON. |
json2xml | لا | تحوِّل بيانات الطلب أو الاستجابة بناءً على عناوين القبول أو نوع المحتوى. بالنسبة التفاصيل، يُرجى الرجوع إلى المكون الإضافي في GitHub. |
حصة-الذاكرة | لا | يؤدي هذا الخيار إلى فرض حصة على الطلبات الموجّهة إلى Edge Microgateway. تخزين الحصص وإدارتها محليًا الذاكرة. |
التحقّق من الصحة | لا | يعرض معلومات حول عملية البوابة الصغيرة على Edge -- استخدام الذاكرة، واستخدام وحدة المعالجة المركزية (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
- هيئ المكون الإضافي. تحتوي بعض المكوّنات الإضافية على مَعلمات اختيارية يمكنك ضبطها في
config. على سبيل المثال، يمكنك إضافة المقاطع التالية لضبط ارتفاع عدد الزيارات
المكون الإضافي. اطلِع على استخدام المكوّن الإضافي للتثبيت المفاجئ
لمزيد من المعلومات.
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) إذا كان حجم المخزن المؤقت > 0، ارتفاع معدّل الاعتقال بتخزين هذا العدد من الطلبات في المخزن المؤقت. عند "نافذة" التنفيذ التالية يحدث، فإن الطلبات التي تم تخزينها مؤقتًا أولاً. راجع أيضًا إضافة المورد الاحتياطي.
ما هي آلية عمل الاعتقال المفاجئ؟
فكر في ارتفاع عمليات الاعتقال كوسيلة للحماية بشكل عام من الارتفاعات المفاجئة في حركة المرور، بدلاً من للحد من حركة المرور لعدد محدد من الطلبات. يمكن لواجهات برمجة التطبيقات والخلفية أن تتعامل مع وعدد الزيارات، وتساعدك سياسة الاعتقال المتزايدة في سلاسة الزيارات إلى الأعداد العامة التي تريدها.
يختلف سلوك الاحتجاز بسبب الارتفاع في بيئة التشغيل عما قد تتوقّع رؤيته من القيم الحرفية القيم التي تُدخلها لكل دقيقة أو في الثانية.
على سبيل المثال، لنفترض أنّك حدّدت معدّل 30 طلبًا في الدقيقة، كما يلي:
spikearrest: timeUnit: minute allow: 30
أثناء إجراء الاختبار، قد تعتقد أنّه يمكنك إرسال 30 طلبًا خلال ثانية واحدة طالما أنّ هذه الطلبات جاءت خلال دقيقة. وليست هذه هي الطريقة التي تفرض بها السياسة هذا الإعداد. إذا فكرت في الأمر، 30 الطلبات خلال ثانية واحدة يمكن اعتبارها زيادة بسيطة في بعض البيئات.
ماذا يحدث بالفعل؟ لمنع السلوك الشبيه بالارتفاع، يسهِّل رفع معدل الاعتقال من خلال تقسيم الإعدادات إلى فواصل زمنية أصغر، على النحو التالي:
أسعار الدقيقة
يتم دمج الأسعار لكل دقيقة في الطلبات على فترات زمنية مسموح بها بالثواني. على سبيل المثال، 30 يتم تبسيط الطلبات في الدقيقة على النحو التالي:
60 ثانية (دقيقة واحدة) / 30 = فواصل زمنية مدتها ثانيتان، أو حوالي طلب واحد مسموح به كل ثانيتين. حاسمة وسيتعذّر الطلب الثاني خلال ثانيتَين. وسيتعذّر أيضًا تقديم الطلب الحادي والثلاثين في غضون دقيقة.
أسعار في الثانية
يتم دمج الأسعار في الثانية ضمن الطلبات المسموح بها على فترات زمنية بالمللي ثانية. على سبيل المثال: يتم تنفيذ 10 طلبات في الثانية بسهولة على النحو التالي:
1000 ملي ثانية (ثانية واحدة) / 10 = 100 ملي ثانية، أو يُسمح بطلب واحد تقريبًا كل 100 مللي ثانية . وسيتعذّر إرسال الطلب الثاني في غضون 100 ملي ثانية. أيضًا، هناك الطلب الحادي عشر داخل والثانية تفشل.
عند تجاوز الحدّ الأقصى المسموح به
في حال تجاوز عدد الطلبات الحدّ الأقصى خلال الفاصل الزمني المحدَّد، سيؤدي ذلك إلى ارتفاع عدد الطلبات تعرض رسالة الخطأ هذه بحالة HTTP 503:
{"error": "spike arrest policy violated"}
إضافة مورد احتياطي
ويمكنك إضافة مورد احتياطي إلى السياسة. لنفترض أنك قمت بتعيين المورد الاحتياطي على 10. ستظهر لك واجهة برمجة التطبيقات لا تعرض رسالة خطأ بشكل فوري عند تجاوز العدد المتزايد لعدد الزيارات. الحد. وبدلاً من ذلك، يتم تخزين الطلبات مؤقتًا (حتى العدد المحدّد)، وتتم إعادة تخزين الطلبات تتم معالجته فور توفر نافذة التنفيذ المناسبة التالية. الإعداد التلقائي قيمة bufferSize هي 0.
إذا كنت تُشغِّل Edge Micro العمليات
يعتمد عدد الطلبات المسموح بها على عدد عمليات مشغل Edge Micro التي
الجري. تحسب الارتفاعات المفاجئة العدد المسموح به من الطلبات لكل عملية عامل. بشكل افتراضي،
أن عدد عمليات Edge Micro يساوي عدد وحدات المعالجة المركزية (CPU) على الجهاز حيث يكون Edge Micro
مثبت. ومع ذلك، يمكنك تهيئة عدد عمليات العمال عند بدء تشغيل Edge Micro
باستخدام الخيار --processes
في الأمر start
. على سبيل المثال، إذا
تريد ارتفاع عدد عمليات الاعتقال التي تؤدي إلى 100 طلب خلال فترة زمنية محددة، وإذا بدأت استخدام Edge
مدخل قصير مع الخيار --processes 4
، ثم اضبط allow: 25
في
لارتفاع عدد عمليات الاعتقال. باختصار، القاعدة الأساسية هي ضبط إعدادات allow
إلى القيمة "الارتفاع المطلوب لعدد عمليات الاعتقال / العدد المطلوب لعمليات الاعتقال".
استخدام المكوّن الإضافي للحصة
تحدد الحصة عدد رسائل الطلبات التي يُسمح للتطبيق بإرسالها إلى واجهة برمجة التطبيقات على مدار ساعة أو يوم أو أسبوع أو شهر. عندما يصل أحد التطبيقات إلى الحد الأقصى لحصته، يتم رفض طلبات البيانات من واجهة برمجة التطبيقات. راجع أيضًا ما الفرق بين ارتفاع معدّلات الاعتقال والحصّة
إضافة المكوّن الإضافي للحصة
راجع إضافة مكونات إضافية وتهيئتها.
إعدادات المنتج في Apigee الحافة
يمكنك ضبط الحصص في واجهة مستخدم Apigee Edge حيث يمكنك إعداد منتجات واجهة برمجة التطبيقات. يجب أن تعرف المنتج الذي يحتوي على الخادم الوكيل الواعي بالسياق الذي تريد فرض قيود عليه بحصة محدّدة. هذا النمط يجب إضافة المنتج إلى تطبيق مطوّر. عند إجراء طلبات بيانات من واجهة برمجة التطبيقات التي تتم مصادقتها باستخدام في تطبيق المطور، فسيتم تطبيق الحصة على طلبات البيانات من واجهة برمجة التطبيقات هذه.
- سجِّل الدخول إلى حساب المؤسسة في Apigee Edge.
- في واجهة مستخدم Edge، افتح المنتج المرتبط بالخادم الوكيل المدرِك للبوابة المصغّرة الذي تريد الوصول إليه.
تريد تطبيق الحصة عليه.
- في واجهة المستخدم، اختَر المنتجات من قائمة "النشر".
- افتح المنتج الذي يحتوي على واجهة برمجة التطبيقات التي تريد تطبيق الحصة عليها.
- انقر على تعديل.
- في الحقل "الحصة"، حدِّد الفاصل الزمني للحصة. على سبيل المثال، 100 طلب كل
دقيقة واحدة. أو 50,000 طلب كل ساعتين.
- انقر على حفظ.
- تأكَّد من إضافة المنتج إلى تطبيق مطوِّر. ستحتاج إلى المفاتيح من هذا التطبيق لإجراء طلبات بيانات من واجهة برمجة التطبيقات التي تمت مصادقتها
نموذج إعدادات للحصة
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 useRedis: true redisHost: localhost redisPort: 6379 redisDb: 1 ...
Option | الوصف |
---|---|
buffersize |
(عدد صحيح) حجم المخزن المؤقت المطلوب تعيينه للفاصل الزمني المحدد. الوقت المسموح به
تتضمّن الوحدات: hour وminute وday
week وmonth وdefault (تمت الإضافة: الإصدار 3.0.9) |
failOpen |
عند تفعيل هذه الميزة، إذا حدث خطأ في معالجة الحصة
أو إذا كانت "الحصة تنطبق" فشل الطلب إلى Edge في تحديث عدادات الحصص عن بُعد، والحصة
ستُعالج بناءً على الأعداد المحلية فقط إلى أن يتم الحصول على الحصة الناجحة التالية عن بُعد.
المزامنة. وفي كلتا الحالتين، يتم ضبط العلامة quota-failed-open في
كائن الطلب. (تمت الإضافة: الإصدار 3.0.9)
لتفعيل الحصة "إخفاق فتح" ضبط الإعدادات التالية: edgemicro: ... quotas: failOpen: true |
useDebugMpId |
يجب ضبط هذه العلامة على true لتفعيل تسجيل جلسة المراجعة.
رقم تعريف (معالج الرسائل)
في ردود الحصة. (تمت الإضافة: الإصدار 3.0.9)
لاستخدام هذه الميزة، عليك تحديث
الخادم الوكيل 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. فعندما
فإن الحصة تقتصر فقط على مثيلات Edge Microgateway التي
الاتصال بخدمة Redis. وبخلاف ذلك، يكون عدّاد الحصة عموميًا. اللغة التلقائية: false
(يتم استخدام الوحدة redis-volos-apigee ) (تمّت الإضافة: الإصدار 3.0.10) |
redisHost |
المضيف الذي يتم تشغيل مثيل Redis فيه. الإعداد التلقائي: 127.0.0.1 (تمت الإضافة: الإصدار 3.0.10) |
redisPort |
منفذ مثيل Redis. الإعداد التلقائي: 6379 (تمت الإضافة: الإصدار 3.0.10) |
redisDb |
قاعدة بيانات Redis المطلوب استخدامها. الإعداد التلقائي: 0 (تمت الإضافة: الإصدار 3.0.10) |
فهم نطاق الحصة
يتم تحديد عدد الحصص على مستوى منتج واجهة برمجة التطبيقات. إذا كان تطبيق المطوِّر يتضمّن منتجات متعددة يتم تحديد الحصة لكل منها على حدة. لتحقيق هذا النطاق، تنشئ Edge Microgateway معرّف حصة عبارة عن مجموعة من "appName + productName".
اختبار المكوّن الإضافي للحصة
وعند تجاوز الحصة، يتم إرجاع حالة HTTP 403 إلى العميل، إلى جانب الرسالة التالية:
{"error": "exceeded quota"}
ما الفارق؟ بين ارتفاع عدد عمليات الاعتقال والحصة؟
من المهم اختيار الأداة المناسبة للوظيفة الحالية. ضبط سياسات الحصص عدد رسائل الطلبات التي يُسمح لتطبيق عميل بإرسالها إلى واجهة برمجة التطبيقات على مدار الدورة التدريبية ساعة أو يوم أو أسبوع أو شهر. تفرض سياسة الحصة حدودًا لاستهلاك تطبيقات العميل من خلال الاحتفاظ بعدّاد موزَّع يخزِّن الطلبات الواردة.
استخدام سياسة الحصة لفرض عقود النشاط التجاري أو اتفاقيات مستوى الخدمة مع المطورين والشركاء، بدلاً من مقارنةً بإدارة حركة المرور التشغيلية. على سبيل المثال، قد يتم استخدام حصة للحد من عدد زيارات خدمة مجانية، مع السماح بالوصول الكامل للعملاء الذين يدفعون رسوم اشتراكهم.
استخدِم الإيقاف المفاجئ للحماية من الارتفاعات المفاجئة في عدد زيارات واجهة برمجة التطبيقات. عادةً ما يكون ارتفاع عدد عمليات الاعتقال المستخدمة لصد هجمات الحرمان من الخدمات الموزعة المحتملة أو غيرها من الهجمات الضارة.