أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info
تحمي سياسة Spike Arrest من ارتفاع عدد الزيارات المفاجئ باستخدام العنصر <Rate>. يحدّ هذا العنصر من عدد الطلبات التي يعالجها خادم وكيل لواجهة برمجة التطبيقات ويتم إرسالها إلى الخلفية، ما يساعد في الحماية من بطء الأداء وتعطّله.
العنصر <SpikeArrest>
تحدّد سياسة Spike Arrest.
| القيمة التلقائية | راجِع علامة التبويب السياسة التلقائية أدناه. |
| هل هو مطلوب؟ | اختياري |
| النوع | عنصر معقّد |
| العنصر الأصل | لا تنطبق |
| العناصر الفرعية |
<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=">tru<e" name="SpikeAr<reast" > D<ispl>ayNam<e&>;<gtSpikeArrea>st/DisplayName Rate300pm/Rate /SpikeArrest
المعدّل الفعّال هو 300 طلب في الدقيقة، ما يعني أنّه تتم إضافة رمز مميز جديد إلى الحزمة كل 200 ملي ثانية. يتم دائمًا ضبط حجم المجموعة على% 10 من messagesPerPeriod. لذلك، عند ضبط messagesPerPeriod على 300، يكون حجم الحزمة 30 رمزًا مميزًا.
مثال 3
يقيّد المثال التالي عدد الطلبات بـ 12 طلبًا في الدقيقة (يُسمح بطلب واحد كل خمس ثوانٍ، أي 60/12):
<SpikeArrest name="Spike-Arre>st-<1&qu>ot; < Rat>e12<pm/Rate Identifier ref=&qu>ot;<client_id" / MessageWeight ref=">;<request.head>er.weight" / /SpikeArrest
بالإضافة إلى ذلك، يقبل العنصر <MessageWeight> قيمة مخصّصة (العنوان weight) تعدّل أوزان الرسائل لتطبيقات أو برامج عملاء معيّنة. يتيح ذلك التحكّم بشكل إضافي في الحدّ الأقصى لعدد الطلبات التي يمكن إرسالها إلى الكيانات المحدّدة باستخدام العنصر <Identifier>.
مثال 4
يوضّح المثال التالي كيفية توجيه سياسة Spike Arrest للبحث عن قيمة وقت التشغيل التي تم ضبطها من خلال الطلب الذي تم تمريره كمتغير التدفق request.header.runtime_rate:
<SpikeArrest name="Spike-Arre>st-<1" Rate ref="request.header.>r<untime_rate&>quot; / /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> فارغًا، سيتم فرض حدّ واحد لعدد الطلبات على جميع الطلبات الواردة إلى خادم وكيل واجهة برمجة التطبيقات.
| القيمة التلقائية | لا تنطبق |
| هل هو مطلوب؟ | اختياري |
| النوع | سلسلة |
| العنصر الأصل |
<SpikeArrest>
|
| العناصر الفرعية | بدون |
البنية
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" > na<me="policy_name" I>d<entifier ref>="flow_variable"/ /SpikeArrest
مثال 1
يطبّق المثال التالي سياسة Spike Arrest لكل رقم تعريف مطوّر:
<SpikeArrest name="Spike-Arre>st-<1" Identifier ref=">;de<velo>per.<id&quo>t<;/ Rate42p>m/Rate/ /SpikeArrest
يوضّح الجدول التالي سمات النوع <Identifier>:
| السمة | الوصف | تلقائي | التواجد في المنزل |
|---|---|---|---|
ref |
تحدّد هذه السمة المتغيّر الذي يتم من خلاله تجميع الطلبات الواردة في ميزة Spike Arrest. يمكنك استخدام أي متغيّر تدفّق للإشارة إلى عميل فريد، مثل المتغيّرات المتاحة مع سياسة VerifyAPIKey. يمكنك أيضًا ضبط المتغيّرات المخصّصة باستخدام سياسة JavaScript أو سياسة AssignMessage. | لا تنطبق | مطلوب |
تمت مناقشة هذا العنصر أيضًا في مشاركة "منتدى Apigee" التالية: Quota Identifier Across Different Policies.
<MessageWeight>
تحدّد هذه السمة عامل الترجيح المحدّد لكل رسالة. يعدّل وزن الرسالة تأثير طلب واحد على احتساب معدّل Spike Arrest. يمكن أن يكون وزن الرسالة أي متغير تدفق، مثل عنوان HTTP أو مَعلمة طلب بحث أو مَعلمة نموذج أو محتوى نص الرسالة. يمكنك أيضًا استخدام متغيرات مخصّصة باستخدام سياسة JavaScript أو سياسة AssignMessage.
استخدِمها مع <Identifier> لزيادة تقييد الطلبات حسب عملاء أو تطبيقات معيّنة.
على سبيل المثال، إذا كان حدّ Spike Arrest <Rate> هو 10pm، وأرسل تطبيق طلبات بوزن 2، سيتم السماح بخمس رسائل فقط في الدقيقة من هذا العميل لأنّ كل طلب يُحتسب على أنّه 2.
| القيمة التلقائية | لا تنطبق |
| هل هو مطلوب؟ | اختياري |
| النوع | عدد صحيح |
| العنصر الأصل |
<SpikeArrest>
|
| العناصر الفرعية | بدون |
البنية
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" > na<me="policy_name" Mess>a<geWeight ref>="flow_variable"/ /SpikeArrest
مثال 1
يقيّد المثال التالي عدد الطلبات بـ 12 طلبًا في الدقيقة (يُسمح بطلب واحد كل خمس ثوانٍ، أي 60/12):
<SpikeArrest name="Spike-Arre>st-<1&qu>ot; < Rat>e12<pm/Rate Identifier ref=&qu>ot;<client_id" / MessageWeight ref=">;<request.head>er.weight" / /SpikeArrest
في هذا المثال، تقبل <MessageWeight> قيمة مخصّصة (العنوان weight في الطلب) تعدّل أوزان الرسائل لعملاء محدّدين. يتيح ذلك التحكّم بشكل إضافي في الحدّ الأقصى لعدد الطلبات التي يمكن إرسالها إلى الكيانات المحدّدة باستخدام العنصر <Identifier>.
يوضّح الجدول التالي سمات النوع <MessageWeight>:
| السمة | الوصف | التواجد في المنزل | تلقائي |
|---|---|---|---|
ref |
تحدّد هذه السمة متغيّر التدفق الذي يحتوي على وزن الرسالة للعميل المحدّد. يمكن أن يكون هذا أي متغير تدفق، مثل مَعلمة طلب بحث HTTP أو عنوان أو محتوى نص الرسالة. لمزيد من المعلومات، يُرجى الاطّلاع على مرجع لمتغيرات التدفق. يمكنك أيضًا ضبط متغيرات مخصّصة باستخدام سياسة JavaScript أو سياسة AssignMessage. | مطلوب | لا ينطبق |
<Rate>
تحدّد هذه السمة معدّل الحدّ من الارتفاعات المفاجئة (أو الزيادات) في عدد الزيارات من خلال تحديد عدد الطلبات المسموح بها في فواصل زمنية مدتها دقيقة واحدة أو ثانية واحدة. يمكنك أيضًا استخدام هذا العنصر مع <Identifier> و<MessageWeight> للتحكّم بسلاسة في عدد الطلبات أثناء وقت التشغيل من خلال قبول القيم من العميل.
| القيمة التلقائية | لا تنطبق |
| هل هو مطلوب؟ | مطلوب |
| النوع | عدد صحيح |
| العنصر الأصل |
<SpikeArrest>
|
| العناصر الفرعية | بدون |
البنية
يمكنك تحديد الأسعار بإحدى الطرق التالية:
- معدّل ثابت تحدّده كنص العنصر
<Rate> - قيمة متغيّر، يمكن أن يمرّرها العميل، وتحدّد اسم متغيّر سير العمل باستخدام السمة
ref
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" > na<me="policy_name&quo>t; Rate <ref=&>q<uot;flow_var>iable"rate[pm|ps]/Rate /SpikeArrest
يجب أن تتوافق قيم المعدّل الصالحة (المحدّدة كقيمة متغيرة أو في نص العنصر) مع التنسيق التالي:
intps(عدد الطلبات في الثانية، يتم تسويتها إلى فواصل زمنية بالملّي ثانية)-
intpm(عدد الطلبات في الدقيقة، يتم تسويتها على فترات زمنية أقل من ثانية)
يجب أن تكون قيمة int عددًا صحيحًا موجبًا غير صفري.
مثال 1
يضبط المثال التالي المعدّل على خمسة طلبات في الثانية:
<SpikeArrest name="Spike-Arre>st-<1&qu>ot;< Ra>t<e5ps/Rate /S>pikeArrest
تؤدي السياسة إلى تسوية المعدّل إلى طلب واحد مسموح به كل 200 مللي ثانية (1000/5).
مثال 2
يضبط المثال التالي المعدّل على 12 طلبًا في الدقيقة:
<SpikeArrest async="false" continueOnError="false" enabled=">tru<e" name="SpikeAr<reast" > D<ispl>ayNam<e&>;<gtSpikeArrea>st/DisplayName Rate300pm/Rate /SpikeArrest
تعمل سياسة المثال هذه على تسوية المعدّل إلى طلب واحد مسموح به كل خمس ثوانٍ (60/12).
يوضّح الجدول التالي سمات النوع <Rate>:
| السمة | الوصف | التواجد في المنزل | تلقائي |
|---|---|---|---|
ref |
تحدّد هذه السمة متغيّرًا في التدفق يحدّد المعدّل. يمكن أن يكون ذلك أي متغيّر في التدفق، مثل مَعلمة طلب بحث HTTP أو عنوان أو محتوى نص الرسالة أو قيمة، مثل خريطة القيمة الرئيسية. لمزيد من المعلومات، يُرجى الاطّلاع على مرجع لمتغيرات التدفق.
يمكنك أيضًا استخدام متغيرات مخصّصة باستخدام سياسة JavaScript أو سياسة AssignMessage. في حال تحديد كل من على سبيل المثال: <Rate ref="request.header.custom_>rat<e&quo>t;1pm/Rate في هذا المثال، إذا لم يمرّر العميل عنوان custom_rate، سيكون معدّل الطلبات المسموح به لوكيل API هو طلب واحد في الدقيقة لجميع العملاء. إذا أرسل العميل عنوان "custom_rate"، يصبح الحد الأقصى لمعدل الطلبات 10 طلبات في الثانية لجميع العملاء على الخادم الوكيل، وذلك إلى أن يتم إرسال طلب بدون عنوان "custom_rate". يمكنك استخدام إذا حدّدت قيمة لـ |
اختياري | لا تنطبق |
Rate التي تحدّد سلوك الحدّ من عدد الزيارات:
| السمة | الوصف |
|---|---|
messagesPerPeriod |
تحدّد هذه السمة عدد الرسائل المسموح بها خلال فترة زمنية محدّدة. على سبيل المثال، إذا تم ضبط سياسة على "10ps" (10 في الثانية)، ستكون قيمة messagesPerPeriod هي 10. |
periodInMicroseconds |
تحدّد هذه السمة الفترة الزمنية بالميكرو ثانية التي يتم احتساب messagesPerPeriod خلالها. بالنسبة إلى إعدادات "10ps"، ستكون هذه القيمة 1,000,000، أي ما يعادل ثانية واحدة. |
maxBurstMessageCount |
تمثّل الحد الأقصى لعدد الطلبات التي يمكن السماح بها على الفور أو في فترة قصيرة في بداية فاصل زمني جديد. |
<UseEffectiveCount>
توزّع هذه السياسة عدد عمليات إيقاف الارتفاع المفاجئ على "معالجات الرسائل" (MP) عند استخدام مجموعات التوسيع التلقائي.
البنية
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" > na<me="policy_n>ame" < UseEffectiveCount>[<false|true]/>UseEffectiveCount /SpikeArrest
مثال 1
يضبط المثال التالي قيمة <UseEffectiveCount> على "صحيح":
<SpikeArrest name='Spike-Arres>t-1<'>; <Rate4>0ps</Rate UseEffect>iveC<ounttrue/UseEffect>i<veCount /Spi>keArrest
العنصر <UseEffectiveCount> اختياري. القيمة التلقائية هي false
عند حذف العنصر من سياسة Spike Arrest.
| القيمة التلقائية | خطأ |
| هل هو مطلوب؟ | اختياري |
| النوع | منطقي |
| العنصر الأصل |
<SpikeArrest>
|
| العناصر الفرعية | بدون |
يوضّح الجدول التالي سمات العنصر <UseEffectiveCount>:
| السمة | الوصف | تلقائي | التواجد في المنزل |
|---|---|---|---|
ref |
تحدّد هذه السمة المتغيّر الذي يحتوي على قيمة <UseEffectiveCount>. يمكن أن يكون ذلك أي متغير تدفق، مثل مَعلمة طلب بحث HTTP أو عنوان أو محتوى نص الرسالة. لمزيد من المعلومات، يُرجى الاطّلاع على مرجع لمتغيرات التدفق. يمكنك أيضًا ضبط متغيرات مخصّصة
باستخدام سياسة JavaScript أو سياسة AssignMessage. |
لا تنطبق | اختياري |
يعتمد تأثير <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 الحالي لتجاوز حدّ المعدّل الذي تم ضبطه بواسطة سياسة "الحصة" أو "منع الارتفاع المفاجئ" هو 429 (عدد كبير جدًا من الطلبات). لتغيير رمز حالة HTTP إلى 500
(خطأ في الخادم الداخلي)، اضبط قيمة السمة features.isHTTPStatusTooManyRequestEnabled على false باستخدام
واجهة برمجة التطبيقات
تعديل خصائص المؤسسة.
على سبيل المثال:
curl -u email:password -X POST -H "Content-type:application/xml" http://api.enterprise.apigee.com/v1/organizations/my<org -d \ "Organization type="trial&qu>ot; n<ame=">MyOrganiz<ation" Properties Property name="fea>ture<s.isHTTPS>tatusTooManyRequest<Enabled&quo>t<;true/Propert>y . . . /Properties /Organization"
المخططات
يتم تحديد كل نوع من أنواع السياسات من خلال مخطّط XML (.xsd). وللحصول على مرجع، تتوفّر مخطّطات السياسات على GitHub.
مواضيع ذات صلة
- سياسة الحصة: سياسة الحصة، وذلك للحدّ من عدد الزيارات التي يتلقّاها كل عميل على حدة
- تقييد معدّل الزيارات للحصول على نظرة عامة حول تقييد معدّل الزيارات
- مقارنة بين سياسات Quota وSpikeArrest
- نماذج عملية لخوادم وكيلة لواجهة برمجة التطبيقات