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