استخدام المكوّنات الإضافية

أنت تعرض مستندات Apigee Edge.
انتقل إلى مستندات Apigee X.
معلومات

Edge Microgateway الإصدار 2.3.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 لتخزين البيانات وإدارتها الحصص. راجع استخدام الحصة المكوّن الإضافي.
مرض الركبة لا يوفر الحماية من الارتفاعات المفاجئة في حركة الزيارات وهجمات الحرمان من الخدمات. راجِع استخدام المكوّن الإضافي لضبط الارتفاع المفاجئ.
أحرف كبيرة للرأس لا نموذج لخادم وكيل مُعلّق كدليل لمساعدة المطوّرين على كتابة مكوّنات إضافية مخصّصة. انظر حافة نموذج المكوّن الإضافي 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

إضافة مكونات إضافية وتهيئتها

اتبع هذا النمط لإضافة مكونات إضافية وتهيئتها:

  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. هيئ المكون الإضافي. تحتوي بعض المكوّنات الإضافية على مَعلمات اختيارية يمكنك ضبطها في 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
  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: الحد الأقصى لعدد الطلبات المسموح بها خلال السمة timeUnit.
  • 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.

استخدام المكوّن الإضافي للحصة

يتناول هذا القسم المكوّن الإضافي للحصة.

لمحة عن المكوّن الإضافي للحصة

تحدد الحصة عدد رسائل الطلبات التي يُسمح للتطبيق بإرسالها إلى واجهة برمجة التطبيقات على مدار ساعة أو يوم أو أسبوع أو شهر. عندما يصل أحد التطبيقات إلى الحد الأقصى لحصته، يتم رفض طلبات البيانات من واجهة برمجة التطبيقات. راجع أيضًا ما الفرق بين ارتفاع معدّلات الاعتقال والحصّة

إضافة المكوّن الإضافي للحصة

للاطلاع على الخطوات الأساسية التي يجب اتباعها لأي مكون إضافي، راجع إضافة مكونات إضافية وتهيئتها.

إعدادات المنتج في Apigee الحافة

يمكنك ضبط الحصص في واجهة مستخدم Apigee Edge حيث يمكنك إعداد منتجات واجهة برمجة التطبيقات. يجب أن تعرف المنتج الذي يحتوي على الخادم الوكيل الواعي بالسياق الذي تريد فرض قيود عليه بحصة محدّدة. هذا النمط يجب إضافة المنتج إلى تطبيق مطوّر. عند إجراء طلبات بيانات من واجهة برمجة التطبيقات التي تتم مصادقتها باستخدام في تطبيق المطور، فسيتم تطبيق الحصة على طلبات البيانات من واجهة برمجة التطبيقات هذه.

  1. سجِّل الدخول إلى حساب المؤسسة في Apigee Edge.
  2. في واجهة مستخدم Edge، افتح المنتج المرتبط بالخادم الوكيل المدرِك للبوابة المصغّرة الذي تريد الوصول إليه. تريد تطبيق الحصة عليه.
    1. في واجهة المستخدم، اختَر المنتجات من قائمة "النشر".
    2. افتح المنتج الذي يحتوي على واجهة برمجة التطبيقات التي تريد تطبيق الحصة عليها.
    3. انقر على تعديل.
    4. في الحقل "الحصة"، حدِّد الفاصل الزمني للحصة. على سبيل المثال، 100 طلب كل دقيقة واحدة. أو 50,000 طلب كل ساعتين.

  1. انقر على حفظ.
  2. تأكَّد من إضافة المنتج إلى تطبيق مطوِّر. ستحتاج إلى المفاتيح من هذا التطبيق لإجراء طلبات بيانات من واجهة برمجة التطبيقات التي تمت مصادقتها

نموذج إعدادات للحصة

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

خيارات الإعداد للحصة

ما مِن خيارات ضبط إضافية للمكوّن الإضافي للحصة.

اختبار المكوّن الإضافي للحصة

وعند تجاوز الحصة، يتم إرجاع حالة HTTP 403 إلى العميل، إلى جانب الرسالة التالية:

{"error": "exceeded quota"}

ما الفارق؟ بين ارتفاع عدد عمليات الاعتقال والحصة؟

من المهم اختيار الأداة المناسبة للوظيفة الحالية. ضبط سياسات الحصص عدد رسائل الطلبات التي يُسمح لتطبيق عميل بإرسالها إلى واجهة برمجة التطبيقات على مدار الدورة التدريبية ساعة أو يوم أو أسبوع أو شهر. تفرض سياسة الحصة حدودًا لاستهلاك تطبيقات العميل من خلال الاحتفاظ بعدّاد موزَّع يخزِّن الطلبات الواردة.

استخدام سياسة الحصة لفرض عقود النشاط التجاري أو اتفاقيات مستوى الخدمة مع المطورين والشركاء، بدلاً من مقارنةً بإدارة حركة المرور التشغيلية. على سبيل المثال، قد يتم استخدام حصة للحد من عدد زيارات خدمة مجانية، مع السماح بالوصول الكامل للعملاء الذين يدفعون رسوم اشتراكهم. يمكنك الاطّلاع أيضًا على استخدام المكوّن الإضافي للحصة.

استخدِم الإيقاف المفاجئ للحماية من الارتفاعات المفاجئة في عدد زيارات واجهة برمجة التطبيقات. عادةً ما يكون ارتفاع عدد عمليات الاعتقال المستخدمة لصد هجمات الحرمان من الخدمات الموزعة المحتملة أو غيرها من الهجمات الضارة.