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

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

Edge Microgateway الإصدار 3.1.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

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

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

  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. عرض أيضًا إذا كنت تقوم بتشغيل عدة 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 حيث يمكنك إعداد منتجات واجهة برمجة التطبيقات. يجب أن تعرف المنتج الذي يحتوي على الخادم الوكيل الواعي بالسياق الذي تريد فرض قيود عليه بحصة محدّدة. هذا النمط يجب إضافة المنتج إلى تطبيق مطوّر. عند إجراء طلبات بيانات من واجهة برمجة التطبيقات التي تتم مصادقتها باستخدام في تطبيق المطور، فسيتم تطبيق الحصة على طلبات البيانات من واجهة برمجة التطبيقات هذه.

  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

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

لإعداد المكوّن الإضافي للحصة، أضِف العنصر 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
...
Option الوصف
buffersize (عدد صحيح) حجم المخزن المؤقت المطلوب تعيينه للفاصل الزمني المحدد. الوقت المسموح به تتضمّن الوحدات: hour وminute وday week وmonth وdefault
failOpen عند تفعيل هذه الميزة، إذا حدث خطأ في معالجة الحصة أو إذا كانت "الحصة تنطبق" فشل الطلب إلى Edge في تحديث عدادات الحصص عن بُعد، والحصة ستُعالج بناءً على الأعداد المحلية فقط إلى أن يتم الحصول على الحصة الناجحة التالية عن بُعد. المزامنة. وفي كلتا الحالتين، يتم ضبط العلامة quota-failed-open في كائن الطلب.

لتفعيل الحصة "إخفاق فتح" ضبط الإعدادات التالية:

edgemicro:
  ...
  quotas:
    failOpen: true
...
useDebugMpId يجب ضبط هذه العلامة على true لتفعيل تسجيل جلسة المراجعة. رقم تعريف (معالج الرسائل) في ردود الحصة.

لاستخدام هذه الميزة، عليك ضبط الإعدادات التالية:

edgemicro:
  ...
  quotas:
    useDebugMpId: true
  ...

عند ضبط useDebugMpId، ستتضمّن الردود على الحصة من Edge رقم تعريف MP. وسيتم تسجيلها بواسطة Edge Microgateway. على سبيل المثال:

{
    "allowed": 20,
    "used": 3,
    "exceeded": 0,
    "available": 17,
    "expiryTime": 1570748640000,
    "timestamp": 1570748580323,
    "debugMpId": "6a12dd72-5c8a-4d39-b51d-2c64f953de6a"
}
useRedis في حال ضبط هذه السياسة على true، سيستخدم المكوّن الإضافي Redis لتخزين الحصة. لمعرفة التفاصيل، يُرجى الاطّلاع على استخدام متجر النسخ الاحتياطي من Redis لتحديد الحصة.

استخدام متجر احتياطي من Redis للحصة

لاستخدام متجر النسخ الاحتياطي من Redis للحصة، استخدِم الإعداد نفسه المستخدَم في ميزة المزامنة. فيما يلي الإعداد الأساسي المطلوب لاستخدام Redis حصة التخزين:

edgemicro:
  redisHost: localhost
  redisPort: 6379
  redisDb: 2
  redisPassword: codemaster

quotas:
  useRedis: true
للحصول على تفاصيل عن مَعلمات edgemicro.redis*، يمكنك الاطّلاع على استخدام أداة المزامنة.

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

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

{"error": "exceeded quota"}

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

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

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

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