تحديد معدل المكالمة حسب الاشتراك

ينطبق على: جميع مستويات إدارة واجهة برمجة التطبيقات

يمنع نهج rate-limit طفرات استخدام واجهة برمجة التطبيقات على أساس الاشتراك عن طريق الحدّ من معدل الاستدعاء لرقم محدد لكل فترة زمنية محددة. عند تجاوز معدل الاستدعاء، يتلقى المتصل التعليمة البرمجية 429 Too Many Requests لحالة الاستجابة.

لفهم الفرق بين حدود المعدلات والحصص، راجع حدود المعدلات والحصص النسبية.

تنبيه

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

إشعار

تعيين عناصر النهج والعناصر التابعة بالترتيب الوارد في بيان النهج. تعلم كيفية إعداد نُهج APIM أو تعديلها.

نهج السياسة

<rate-limit calls="number" renewal-period="seconds"  retry-after-header-name="custom header name, replaces default 'Retry-After'" 
        retry-after-variable-name="policy expression variable name"
        remaining-calls-header-name="header name"  
        remaining-calls-variable-name="policy expression variable name"
        total-calls-header-name="header name">
    <api name="API name" id="API id" calls="number" renewal-period="seconds" >
        <operation name="operation name" id="operation id" calls="number" renewal-period="seconds" />
    </api>
</rate-limit>

سمات

السمة ‏‏الوصف مطلوبة افتراضي
calls الحد الأقصى لإجمالي عدد المكالمات المسموح بها خلال الفاصل الزمني المحدد في renewal-period. تعبيرات النهج غير مسموح بها. ‏‏نعم‬ غير متوفر
renewal-period الطول محسوبًا بالثواني للنافذة المنزلقة التي خلالها ينبغي ألا يتجاوز عدد الطلبات المسموح بها القيمة المحددة في calls. الحد الأقصى للقيمة المسموح بها: 300 ثانية. تعبيرات النهج غير مسموح بها. ‏‏نعم‬ غير متوفر
retry-after-header-name اسم عنوان الاستجابة الذي تكون قيمته عبارة عن الفاصل الزمني الموصى به لإعادة المحاولة محسوبًا بالثواني بعد تجاوز معدل الاستدعاء المحدد. تعبيرات النهج غير مسموح بها. لا Retry-After
retry-after-variable-name اسم متغير يخزن الفاصل الزمني لإعادة المحاولة الموصى به بالثوان بعد تجاوز معدل الاستدعاء المحدد. تعبيرات النهج غير مسموح بها. لا ‏‫غير متاح
remaining-calls-header-name اسم عنوان الاستجابة الذي تكون قيمته بعد تنفيذ كل نهج هو عدد المكالمات المتبقية المسموح بها للفاصل الزمني المحدد في renewal-period. تعبيرات النهج غير مسموح بها. لا ‏‫غير متاح
remaining-calls-variable-name اسم متغير يقوم بعد كل تنفيذ نهج بتخزين عدد الاستدعاءات المتبقية المسموح بها للفاصل الزمني المحدد في renewal-period. تعبيرات النهج غير مسموح بها. لا ‏‫غير متاح
total-calls-header-name اسم عنوان الاستجابة الذي تكون قيمته هي القيمة المحددة في calls. تعبيرات النهج غير مسموح بها. لا ‏‫غير متاح

عناصر

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

سمات واجهة برمجة التطبيقات

السمة ‏‏الوصف مطلوبة افتراضي
الاسم اسم واجهة برمجة التطبيقات لتطبيق حد المعدل. إما name أو id يجب تحديده. ‏‫غير متوفر‬
المعرف معرف واجهة برمجة التطبيقات التي يجب تطبيق حد المعدل لها. إما name أو id يجب تحديده. ‏‫غير متوفر‬
calls الحد الأقصى لإجمالي عدد المكالمات المسموح بها خلال الفاصل الزمني المحدد في renewal-period. تعبيرات النهج غير مسموح بها. ‏‏نعم‬ غير متوفر
renewal-period الطول محسوبًا بالثواني للنافذة المنزلقة التي خلالها ينبغي ألا يتجاوز عدد الطلبات المسموح بها القيمة المحددة في calls. الحد الأقصى للقيمة المسموح بها: 300 ثانية. تعبيرات النهج غير مسموح بها. ‏‏نعم‬ غير متوفر

سمات العملية

السمة ‏‏الوصف مطلوبة افتراضي
الاسم اسم العملية التي سيتم تطبيق حد المعدل لها. إما name أو id يجب تحديده. ‏‫غير متوفر‬
المعرف معرف العملية التي يجب تطبيق حد المعدل لها. إما name أو id يجب تحديده. ‏‫غير متوفر‬
calls الحد الأقصى لإجمالي عدد المكالمات المسموح بها خلال الفاصل الزمني المحدد في renewal-period. تعبيرات النهج غير مسموح بها. ‏‏نعم‬ غير متوفر
renewal-period الطول محسوبًا بالثواني للنافذة المنزلقة التي خلالها ينبغي ألا يتجاوز عدد الطلبات المسموح بها القيمة المحددة في calls. الحد الأقصى للقيمة المسموح بها: 300 ثانية. تعبيرات النهج غير مسموح بها. ‏‏نعم‬ غير متوفر

الاستخدام

ملاحظات الاستخدام

  • يمكن استخدام هذا النهج مرة واحدة فقط لكل تعريف نهج.
  • يتم تطبيق هذا النهج فقط عند الوصول إلى واجهة برمجة التطبيقات باستخدام مفتاح اشتراك.
  • يمكن تكوين عدد حدود المعدلات في بوابة مستضافة ذاتيا للمزامنة محليا (بين مثيلات البوابة عبر عقد نظام المجموعة)، على سبيل المثال، من خلال نشر مخطط Helm ل Kubernetes أو باستخدام قوالب توزيع مدخل Azure. ومع ذلك، لا تتم مزامنة عدد حدود المعدل مع موارد البوابة الأخرى التي تم تكوينها في مثيل APIM، بما في ذلك البوابة المدارة في السحابة. معرفة المزيد

مثال

في المثال التالي، يبلغ الحد الأقصى لمعدل الاشتراك 20 مكالمة لكل 90 ثانية. بعد تنفيذ كل نهج، يتم تخزين المكالمات المتبقية المسموح بها في الفترة الزمنية في المتغير remainingCallsPerSubscription.

<policies>
    <inbound>
        <base />
        <rate-limit calls="20" renewal-period="90" remaining-calls-variable-name="remainingCallsPerSubscription"/>
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>

لمزيد من المعلومات حول العمل مع النُهج، راجع: