أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info

تحمي سياسة Spike Arrest من ارتفاع عدد الزيارات المفاجئ باستخدام العنصر <Rate>
. يحدّ هذا العنصر من عدد الطلبات التي يعالجها خادم وكيل لواجهة برمجة التطبيقات ويتم إرسالها إلى نظام الخلفية، ما يساعد في الحماية من بطء الأداء وتعطّله.
العنصر <SpikeArrest>
تحدّد سياسة Spike Arrest.
القيمة التلقائية | راجِع علامة التبويب السياسة التلقائية أدناه. |
هل هو مطلوب؟ | اختياري |
النوع | عنصر معقّد |
العنصر الأصل | timing fixed in amara |
العناصر الفرعية |
<Identifier> <MessageWeight> <Rate> (مطلوب)<UseEffectiveCount> |
البنية
يستخدم العنصر <SpikeArrest>
البنية التالية:
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <DisplayName>display_name</DisplayName> <Properties/> <Identifier ref="flow_variable"/> <MessageWeight ref="flow_variable"/> <Rate ref="flow_variable">rate[pm|ps]</Rate> <UseEffectiveCount>[false|true]</UseEffectiveCount> </SpikeArrest>
السياسة التلقائية
يوضّح المثال التالي الإعدادات التلقائية عند إضافة سياسة Spike Arrest إلى التدفق في واجهة مستخدم Edge:
<SpikeArrest async="false" continueOnError="false" enabled="true" name="Spike-Arrest-1"> <DisplayName>Spike Arrest-1</DisplayName> <Properties/> <Identifier ref="request.header.some-header-name"/> <MessageWeight ref="request.header.weight"/> <Rate>30ps</Rate> <UseEffectiveCount>true</UseEffectiveCount> </SpikeArrest>
يتضمن هذا العنصر السمات التالية الشائعة لجميع السياسات:
السمة | تلقائي | مطلوب | الوصف |
---|---|---|---|
name |
لا ينطبق | مطلوب |
الاسم الداخلي للسياسة. يمكن أن تحتوي قيمة السمة اختياريًا، يمكنك استخدام العنصر |
continueOnError |
false | إجراء اختياري | يمكنك ضبطها على "خطأ" لعرض رسالة خطأ عند تعذّر تنفيذ إحدى السياسات. ويُعدّ هذا سلوكًا متوقعًا في معظم السياسات. يمكنك ضبط القيمة على "صحيح" للاستمرار في تنفيذ العملية حتى بعد تعذُّر تنفيذ سياسة. |
enabled |
صحيح | إجراء اختياري | اضبط القيمة على "true" لفرض السياسة. اضبط هذه القيمة على "false" على "إيقاف" السياسة. لن يتم فرض السياسة حتى إذا ظلت مرتبطة بتدفق. |
async |
false | منهي العمل به | تم إيقاف هذه السمة نهائيًا. |
أمثلة
توضّح الأمثلة التالية بعض الطرق التي يمكنك من خلالها استخدام سياسة Spike Arrest:
مثال 1
يضبط المثال التالي المعدّل على خمس مرات في الثانية:
<SpikeArrest name="Spike-Arrest-1"> <Rate>5ps</Rate> </SpikeArrest>
تؤدي السياسة إلى تسوية المعدّل إلى طلب واحد مسموح به كل 200 مللي ثانية (1000/5).
مثال 2
يضبط المثال التالي المعدّل على 300 في الدقيقة:
<SpikeArrest async="false" continueOnError="false" enabled="true" name="SpikeArreast"> <DisplayName>SpikeArreast</DisplayName> <Rate>300pm</Rate> </SpikeArrest>
المعدّل الفعّال هو 300 طلب في الدقيقة، ما يعني أنّه تتم إضافة رمز مميز جديد إلى الحزمة كل 200 ملي ثانية. يتم دائمًا ضبط حجم المجموعة على% 10 من messagesPerPeriod
. لذلك، عند ضبط messagesPerPeriod
على 300، يكون حجم الحزمة 30 رمزًا مميزًا.
مثال 3
يقيّد المثال التالي الطلبات بـ 12 طلبًا في الدقيقة (يُسمح بطلب واحد كل خمس ثوانٍ، أي 60/12):
<SpikeArrest name="Spike-Arrest-1"> <Rate>12pm</Rate> <Identifier ref="client_id" /> <MessageWeight ref="request.header.weight" /> </SpikeArrest>
بالإضافة إلى ذلك، يقبل العنصر <MessageWeight>
قيمة مخصّصة (الرأس weight
) تعدّل أوزان الرسائل لتطبيقات أو برامج عملاء معيّنة. يتيح ذلك التحكّم بشكل إضافي في الحدّ الأقصى لعدد الطلبات التي يمكن إرسالها إلى الكيانات المحدّدة باستخدام العنصر <Identifier>
.
مثال 4
يوضّح المثال التالي كيفية توجيه سياسة Spike Arrest للبحث عن قيمة وقت التشغيل التي تم ضبطها من خلال الطلب الذي تم تمريره كمتغير التدفق request.header.runtime_rate
:
<SpikeArrest name="Spike-Arrest-1"> <Rate ref="request.header.runtime_rate" /> </SpikeArrest>
يجب أن تكون قيمة متغيّر التدفق على شكل intpm
أو intps
.
لتجربة هذا المثال، نفِّذ طلبًا على النحو التالي:
curl http://myorg-myenv.apigee.net/price -H 'runtime_rate:30ps'
مرجع العنصر الفرعي
يوضّح هذا القسم العناصر الفرعية من <SpikeArrest>
.
<DisplayName>
استخدِم هذه السمة بالإضافة إلى السمة name
لتصنيف السياسة في محرّر وكيل واجهة مستخدم الإدارة باسم مختلف وأكثر طبيعية.
العنصر <DisplayName>
مشترك بين جميع السياسات.
القيمة التلقائية | timing fixed in amara |
هل هو مطلوب؟ | اختياريّ. في حال حذف <DisplayName> ، سيتم استخدام قيمة السمة name الخاصة بالسياسة. |
النوع | سلسلة |
العنصر الأصل | <PolicyElement> |
العناصر الفرعية | بدون |
يستخدم العنصر <DisplayName>
البنية التالية:
البنية
<PolicyElement> <DisplayName>policy_display_name</DisplayName> ... </PolicyElement>
مثال
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
لا يحتوي العنصر <DisplayName>
على أي سمات أو عناصر فرعية.
<Identifier>
تتيح لك هذه السمة اختيار كيفية تجميع الطلبات حتى يمكن تطبيق سياسة Spike Arrest استنادًا إلى العميل. على سبيل المثال، يمكنك تجميع الطلبات حسب معرّف المطوّر، وفي هذه الحالة سيتم احتساب طلبات كل مطوّر ضمن معدّل Spike Arrest الخاص به وليس ضمن جميع الطلبات الموجّهة إلى الخادم الوكيل.
يجب استخدامها مع العنصر <MessageWeight>
للتحكّم بشكل أكثر دقة في تقييد عدد الطلبات.
إذا تركت العنصر <Identifier>
فارغًا، سيتم فرض حدّ أقصى واحد لعدد الطلبات على جميع الطلبات الواردة إلى خادم وكيل واجهة برمجة التطبيقات.
القيمة التلقائية | timing fixed in amara |
هل هو مطلوب؟ | اختياري |
النوع | سلسلة |
العنصر الأصل |
<SpikeArrest>
|
العناصر الفرعية | بدون |
البنية
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Identifier ref="flow_variable"/> </SpikeArrest>
مثال 1
يطبّق المثال التالي سياسة Spike Arrest لكل رقم تعريف مطوّر:
<SpikeArrest name="Spike-Arrest-1"> <Identifier ref="developer.id"/> <Rate>42pm</Rate/> </SpikeArrest>
يوضّح الجدول التالي سمات النوع <Identifier>
:
السمة | الوصف | تلقائي | التواجد في المنزل |
---|---|---|---|
ref |
تحدّد هذه السمة المتغيّر الذي تستخدمه ميزة Spike Arrest لتجميع الطلبات الواردة. يمكنك استخدام أي متغيّر تدفّق للإشارة إلى عميل فريد، مثل المتغيّرات المتاحة مع سياسة VerifyAPIKey. يمكنك أيضًا ضبط المتغيّرات المخصّصة باستخدام سياسة JavaScript أو سياسة AssignMessage. | timing fixed in amara | مطلوب |
تمت مناقشة هذا العنصر أيضًا في مشاركة "منتدى Apigee" التالية: http://community.apigee.com/questions/2807/how-does-the-edge-quota-policy-work-when-no-identi.html.
<MessageWeight>
تحدّد هذه السمة عامل الترجيح المحدّد لكل رسالة. يعدّل وزن الرسالة تأثير طلب واحد على احتساب معدّل Spike Arrest. يمكن أن يكون وزن الرسالة أي متغيّر تدفق، مثل عنوان HTTP أو مَعلمة طلب بحث أو مَعلمة نموذج أو محتوى نص الرسالة. يمكنك أيضًا استخدام متغيرات مخصّصة باستخدام سياسة JavaScript أو سياسة AssignMessage.
استخدِمها مع <Identifier>
لزيادة تقييد الطلبات حسب عملاء أو تطبيقات معيّنة.
على سبيل المثال، إذا كان حدّ Spike Arrest <Rate>
هو 10pm
، وأرسل تطبيق طلبات بوزن 2
، سيُسمح بخمس رسائل فقط في الدقيقة من هذا العميل لأنّ كل طلب يُحتسب على أنّه 2.
القيمة التلقائية | timing fixed in amara |
هل هو مطلوب؟ | اختياري |
النوع | عدد صحيح |
العنصر الأصل |
<SpikeArrest>
|
العناصر الفرعية | بدون |
البنية
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <MessageWeight ref="flow_variable"/> </SpikeArrest>
مثال 1
يقيّد المثال التالي الطلبات بـ 12 طلبًا في الدقيقة (يُسمح بطلب واحد كل خمس ثوانٍ، أي 60/12):
<SpikeArrest name="Spike-Arrest-1"> <Rate>12pm</Rate> <Identifier ref="client_id" /> <MessageWeight ref="request.header.weight" /> </SpikeArrest>
في هذا المثال، يقبل <MessageWeight>
قيمة مخصّصة (العنوان weight
في الطلب) تعدّل أوزان الرسائل لعملاء محدّدين. يتيح ذلك التحكّم بشكل إضافي في الحدّ الأقصى لعدد الطلبات التي يمكن إرسالها إلى الكيانات المحدّدة باستخدام العنصر <Identifier>
.
يوضّح الجدول التالي سمات النوع <MessageWeight>
:
السمة | الوصف | التواجد في المنزل | تلقائي |
---|---|---|---|
ref |
تحدّد هذه السمة متغيّر التدفق الذي يحتوي على وزن الرسالة للعميل المحدّد. يمكن أن يكون هذا أي متغير تدفق، مثل مَعلمة طلب بحث HTTP أو عنوان أو محتوى نص الرسالة. لمزيد من المعلومات، يُرجى الاطّلاع على مرجع لمتغيرات التدفق. يمكنك أيضًا ضبط متغيرات مخصّصة باستخدام سياسة JavaScript أو سياسة AssignMessage. | مطلوب | لا ينطبق |
<Rate>
تحدّد هذه السمة معدّل الحدّ من الارتفاعات المفاجئة في عدد الزيارات (أو الارتفاعات السريعة) من خلال تحديد عدد الطلبات المسموح بها في فواصل زمنية مدتها دقيقة واحدة أو ثانية واحدة. يمكنك أيضًا استخدام هذا العنصر مع <Identifier>
و<MessageWeight>
لتنظيم عدد الزيارات بسلاسة في وقت التشغيل من خلال قبول القيم من العميل.
القيمة التلقائية | timing fixed in amara |
هل هو مطلوب؟ | مطلوب |
النوع | عدد صحيح |
العنصر الأصل |
<SpikeArrest>
|
العناصر الفرعية | بدون |
البنية
يمكنك تحديد الأسعار بإحدى الطرق التالية:
- معدّل ثابت تحدّده كنص العنصر
<Rate>
- قيمة متغيّر، يمكن أن يمرّرها العميل، وتحدّد اسم متغيّر التدفق باستخدام السمة
ref
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Rate ref="flow_variable">rate[pm|ps]</Rate> </SpikeArrest>
يجب أن تتوافق قيم المعدّل الصالحة (المحدّدة كقيمة متغيرة أو في نص العنصر) مع التنسيق التالي:
intps
(عدد الطلبات في الثانية، يتم تسويتها إلى فواصل زمنية بالملّي ثانية)-
intpm
(عدد الطلبات في الدقيقة، يتم تقسيمها إلى فواصل زمنية بالثواني)
يجب أن تكون قيمة int عددًا صحيحًا موجبًا غير صفري.
مثال 1
يضبط المثال التالي المعدّل على خمسة طلبات في الثانية:
<SpikeArrest name="Spike-Arrest-1"> <Rate>5ps</Rate> </SpikeArrest>
تؤدي السياسة إلى تسوية المعدّل إلى طلب واحد مسموح به كل 200 مللي ثانية (1000/5).
مثال 2
يضبط المثال التالي المعدّل على 12 طلبًا في الدقيقة:
<SpikeArrest async="false" continueOnError="false" enabled="true" name="SpikeArreast"> <DisplayName>SpikeArreast</DisplayName> <Rate>300pm</Rate> </SpikeArrest>
تعمل سياسة المثال هذه على تسوية المعدّل إلى طلب واحد مسموح به كل خمس ثوانٍ (60/12).
يوضّح الجدول التالي سمات النوع <Rate>
:
السمة | الوصف | التواجد في المنزل | تلقائي |
---|---|---|---|
ref |
تحدّد هذه السمة متغيّر تدفّق يحدّد المعدّل. يمكن أن يكون ذلك أي متغير في التدفق، مثل مَعلمة طلب بحث HTTP أو عنوان أو محتوى نص الرسالة أو قيمة مثل KVM. لمزيد من المعلومات، يُرجى الاطّلاع على مرجع لمتغيرات التدفق.
يمكنك أيضًا استخدام متغيرات مخصّصة باستخدام سياسة JavaScript أو سياسة AssignMessage. في حال تحديد كل من على سبيل المثال: <Rate ref="request.header.custom_rate">1pm</Rate> في هذا المثال، إذا لم يمرّر العميل عنوان custom_rate، سيكون معدّل طلبات الخادم الوكيل لواجهة برمجة التطبيقات هو طلب واحد في الدقيقة لجميع العملاء. إذا أرسل العميل عنوان "custom_rate"، يصبح الحد الأقصى لمعدل الطلبات 10 طلبات في الثانية لجميع العملاء على الخادم الوكيل، وذلك إلى أن يتم إرسال طلب بدون عنوان "custom_rate". يمكنك استخدام إذا حدّدت قيمة لـ |
اختياري | timing fixed in amara |
<UseEffectiveCount>
توزّع هذه السياسة عدد عمليات Spike Arrest على "معالجات الرسائل" (MP) عند استخدام مجموعات التوسيع التلقائي.
البنية
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <UseEffectiveCount>[false|true]</UseEffectiveCount> </SpikeArrest>
مثال 1
يضبط المثال التالي قيمة <UseEffectiveCount>
على "صحيح":
<SpikeArrest name='Spike-Arrest-1'> <Rate>40ps</Rate> <UseEffectiveCount>true</UseEffectiveCount> </SpikeArrest>
العنصر <UseEffectiveCount>
اختياري. القيمة التلقائية هي false
عند حذف العنصر من سياسة Spike Arrest.
القيمة التلقائية | خطأ |
هل هو مطلوب؟ | اختياري |
النوع | منطقي |
العنصر الأصل |
<SpikeArrest>
|
العناصر الفرعية | بدون |
يوضّح الجدول التالي سمات العنصر <UseEffectiveCount>
:
السمة | الوصف | تلقائي | التواجد في المنزل |
---|---|---|---|
ref |
تحدّد هذه السمة المتغيّر الذي يحتوي على قيمة <UseEffectiveCount> . يمكن أن يكون هذا أي متغير تدفق، مثل مَعلم طلب بحث HTTP أو عنوان أو محتوى نص الرسالة. لمزيد من المعلومات، يُرجى الاطّلاع على مرجع متغيرات التدفق. يمكنك أيضًا ضبط متغيرات مخصّصة
باستخدام سياسة JavaScript أو سياسة AssignMessage. |
timing fixed in amara | اختياري |
يعتمد تأثير <UseEffectiveCount>
على قيمته:
true
: الحد الأقصى لمعدّل الارتفاع المفاجئ في عدد طلبات وسيط الإعلان هو<Rate>
مقسومًا على العدد الحالي لوسطاء الإعلان في الحزمة نفسها. الحدّ الأقصى المجمّع هو قيمة<Rate>
. عند إضافة مقاييس أداء بشكل ديناميكي (أو إزالتها)، ستزداد حدود معدل الارتفاع الفردي (أو تنخفض)، ولكن سيظل الحد الإجمالي كما هو.false
: الحدّ الأقصى لمعدّل الارتفاع المفاجئ لكل MP هو ببساطة قيمة<Rate>
. الحدّ الأقصى المجمّع هو مجموع معدّلات جميع مقاييس الأداء. عند إضافة نقاط وصول (أو إزالتها)، ستبقى الحدود الفردية لمعدل الارتفاع المفاجئ كما هي، ولكن سيزيد الحد الإجمالي (أو ينخفض).
تستخدم سياسة SpikeArrest خوارزمية "حزمة الرموز المميزة" التي تعمل على تسوية الارتفاعات المفاجئة في عدد الزيارات من خلال تقسيم الحدّ الأقصى لمعدّل الزيارات الذي تحدّده إلى فواصل زمنية أصغر. من سلبيات هذه الطريقة أنّه يمكن رفض طلبات متعددة مشروعة تصل خلال فترة زمنية قصيرة.
على سبيل المثال، لنفترض أنّك أدخلت معدّل 30 طلبًا في الدقيقة. في مرحلة الاختبار، قد تعتقد أنّه يمكنك إرسال 30 طلبًا في ثانية واحدة، طالما أنّها تصل في غضون دقيقة واحدة. لكنّ السياسة لا تفرض الإعداد بهذه الطريقة. إذا فكّرت في الأمر، قد يتم اعتبار 30 طلبًا خلال ثانية واحدة زيادة طفيفة في بعض البيئات.
- يتم تعديل معدّلات الدقيقة الواحدة لتصبح طلبات كاملة مسموح بها في فواصل زمنية تبلغ ثوانٍ.
على سبيل المثال، يتم تسوية 30 طلبًا في الدقيقة على النحو التالي:
60 ثانية (دقيقة واحدة) / 30 طلبًا في الدقيقة = فواصل زمنية مدتها ثانيتان، أو طلب واحد مسموح به كل ثانيتين. سيؤدي تقديم طلب ثانٍ خلال ثانيتَين إلى تعذُّر تنفيذه. بالإضافة إلى ذلك، سيتعذّر تنفيذ الطلب الحادي والثلاثين خلال دقيقة واحدة. - يتم تعديل معدّلات الطلبات في الثانية لتصبح طلبات كاملة مسموح بها في فواصل زمنية تبلغ مللي ثانية.
على سبيل المثال، يتم تسوية 10ps على النحو التالي:
1000 مللي ثانية (ثانية واحدة) / 10ps = فواصل زمنية تبلغ 100 مللي ثانية، أو يُسمح بطلب واحد كل 100 مللي ثانية. سيتعذّر تنفيذ طلب ثانٍ خلال 100 ملي ثانية. بالإضافة إلى ذلك، سيتعذّر تنفيذ الطلب الحادي عشر خلال ثانية واحدة.
يوضّح الجدول التالي تأثير <UseEffectiveCount>
في الحدّ الأقصى الفعّال لمعدّل طلبات البحث لكل شريك وسيط:
قيمة <UseEffectiveCount> |
||||||
---|---|---|---|---|---|---|
false |
false |
false |
true |
true |
true |
|
# of MPs | 8 | 4 | 2 | 8 | 4 | 2 |
قيمة <Rate> |
10 | 10 | 10 | 40 | 40 | 40 |
المعدّل الفعّال لكلّ مليون ظهور | 10 | 10 | 10 | 5 | 10 | 20 |
الحدّ الأقصى للتجميع | 80 | 40 | 20 | 40* | 40* | 40* |
* كما هو الحال في <Rate> . |
في هذا المثال، لاحظ أنّه عند خفض عدد مرات الظهور من 4 إلى 2، وأنّ <UseEffectiveCount>
هو false
، يظلّ معدّل التكلفة الفعّالة لكلّ مرة ظهور كما هو (10). ولكن عندما تكون قيمة <UseEffectiveCount>
هي true
، يتراوح المعدل الفعّال لكل مليون وحدة معالجة من 10 إلى 20 عند خفض عدد وحدات المعالجة من 4 إلى 2.
متغيّرات سير العمل
عند تنفيذ سياسة Spike Arrest، يتم ملء متغير التدفق التالي:
متغيّر | النوع | الإذن | الوصف |
---|---|---|---|
ratelimit.policy_name.failed |
منطقي | قراءة فقط | تشير إلى ما إذا كانت السياسة قد تعذّر تنفيذها (true أو false ). |
لمزيد من المعلومات، يُرجى الاطّلاع على مرجع لمتغيرات التدفق.
مرجع الخطأ
يصف هذا القسم رموز الخطأ ورسائل الخطأ التي يتم إرجاعها ومتغيراتها. التي يتم ضبطها من خلال Edge عندما تؤدي هذه السياسة إلى ظهور خطأ. من المهم معرفة هذه المعلومات إذا كنت تضع قواعد خطأ التعامل مع الأخطاء. لمزيد من المعلومات، يُرجى مراجعة معلومات يجب معرفتها حول أخطاء السياسة والتعامل مع المعالجة والأخطاء.
أخطاء بيئة التشغيل
يمكن أن تحدث هذه الأخطاء عند تنفيذ السياسة.
رمز الخطأ | رموز حالة HTTP | السبب | إصلاح |
---|---|---|---|
policies.ratelimit.FailedToResolveSpikeArrestRate |
500 |
يحدث هذا الخطأ إذا كان المرجع إلى المتغيّر الذي يحتوي على إعداد المعدّل
داخل العنصر <Rate> إلى قيمة داخل Spike Arrest
. يُعد هذا العنصر إلزاميًا ويُستخدَم لتحديد الارتفاع المفاجئ في معدل الاعتقال في
على شكل intpm أو intps . |
build |
policies.ratelimit.InvalidMessageWeight |
500 |
يحدث هذا الخطأ إذا كانت القيمة المحدّدة للعنصر <MessageWeight> هي
متغير التدفق غير صالح (قيمة لا تمثل عددًا صحيحًا). |
build |
policies.ratelimit.SpikeArrestViolation |
429 |
تم تجاوز الحد الأقصى لمعدّل الزحف. |
أخطاء النشر
يمكن أن تحدث هذه الأخطاء عند نشر خادم وكيل يحتوي على هذه السياسة.
اسم الخطأ | السبب | إصلاح |
---|---|---|
InvalidAllowedRate |
إذا كان الارتفاع المفاجئ في معدّل الاعتقال المحدد في العنصر <Rate> في "تثبيت السكتة العائمة"
لا تكون السياسة عددًا صحيحًا أو إذا لم يكن المعدّل ps أو pm كلاحقة،
فسيفشل نشر الخادم الوكيل لواجهة برمجة التطبيقات. |
build |
متغيّرات الأخطاء
يتم ضبط هذه المتغيّرات عند حدوث خطأ في بيئة التشغيل. يمكنك الاطّلاع على مقالة ما تحتاج إلى معرفته للحصول على مزيد من المعلومات. حول أخطاء السياسة.
المتغيرات | المكان | مثال |
---|---|---|
fault.name="fault_name" |
تمثّل السمة fault_name اسم الخطأ، كما هو موضّح في جدول أخطاء وقت التشغيل أعلاه. اسم الخطأ هو الجزء الأخير رمز الخطأ. | fault.name Matches "SpikeArrestViolation" |
ratelimit.policy_name.failed |
policy_name هو الاسم الذي يحدّده المستخدم للسياسة التي أدّت إلى حدوث الخطأ. | ratelimit.SA-SpikeArrestPolicy.failed = true |
مثال على استجابة الخطأ
فيما يلي مثال على الرد على الخطأ:
{ "fault":{ "detail":{ "errorcode":"policies.ratelimit.SpikeArrestViolation" }, "faultstring":"Spike arrest violation. Allowed rate : 10ps" } }
مثال على قاعدة الخطأ
في ما يلي مثال على قاعدة أخطاء للتعامل مع خطأ SpikeArrestViolation
:
<FaultRules> <FaultRule name="Spike Arrest Errors"> <Step> <Name>JavaScript-1</Name> <Condition>(fault.name Matches "SpikeArrestViolation") </Condition> </Step> <Condition>ratelimit.Spike-Arrest-1.failed=true</Condition> </FaultRule> </FaultRules>
رمز حالة HTTP الحالي لتجاوز حدّ المعدّل الذي تم ضبطه بواسطة سياسة الحصة أو سياسة Spike Arrest هو 429
(عدد كبير جدًا من الطلبات). لتغيير رمز حالة HTTP إلى 500
(خطأ في الخادم الداخلي)، اضبط قيمة السمة features.isHTTPStatusTooManyRequestEnabled
على false
باستخدام واجهة برمجة التطبيقات
تعديل خصائص المؤسسة.
على سبيل المثال:
curl -u email:password -X POST -H "Content-type:application/xml" http://api.enterprise.apigee.com/v1/organizations/myorg -d \ "<Organization type="trial" name="MyOrganization"> <Properties> <Property name="features.isHTTPStatusTooManyRequestEnabled">true</Property> . . . </Properties> </Organization>"
المخططات
يتم تحديد كل نوع من أنواع السياسات من خلال مخطّط XML (.xsd
). وللحصول على مرجع، تتوفّر مخطّطات السياسات على GitHub.
مواضيع ذات صلة
- سياسة الحصة: سياسة الحصة، وذلك للحد من عدد الزيارات التي يتلقّاها كل عميل على حدة
- تقييد معدّل الزيارات للحصول على نظرة عامة حول تقييد معدّل الزيارات
- مقارنة بين سياسات Quota وSpikeArrest
- نماذج عملية لخوادم وكيلة لواجهة برمجة التطبيقات