يتم الآن عرض مستندات Apigee Edge.
يمكنك الاطّلاع على وثائق Apigee X.

الموضوع
يمكنك استخدام سياسة الحصة لضبط عدد رسائل الطلبات التي يسمح بها الخادم الوكيل لواجهة برمجة التطبيقات على مدار فترة زمنية، مثل دقيقة أو ساعة أو يوم أو أسبوع أو شهر. يمكنك تحديد الحصة نفسها لجميع التطبيقات التي يمكنها الوصول إلى الخادم الوكيل لواجهة برمجة التطبيقات، أو يمكنك ضبط الحصة استنادًا إلى ما يلي:
- المنتج الذي يتضمّن الخادم الوكيل لواجهة برمجة التطبيقات
- التطبيق الذي يطلب واجهة برمجة التطبيقات
- مطوِّر التطبيقات
- العديد من المعايير الأخرى
لا تستخدم الحصة لحماية البيانات من الارتفاع المفاجئ في عدد الزيارات. ولإجراء ذلك، استخدِم سياسة الإيقاف المؤقت. يُرجى الاطّلاع على سياسة توقف نشاط Spike.
الفيديوهات الطويلة
تقدم الفيديوهات التالية إدارة الحصة مع سياسة الحصة:
مقدمة (New Edge)
المقدّمة (الإصدار الكلاسيكي من Edge)
الحصة الديناميكية
موزّع ومتزامن
حجم الرسالة
التقويم
نافذة دوّارة
التعبير
الحصة المشروطة
متغيرات التدفق
خطأ أثناء المعالجة
عيّنات
توضح نماذج رموز السياسات هذه كيفية بدء فترات الحصة وإنهائها عن طريق:
المزيد من الحصة الديناميكية
<Quota name="CheckQuota"> <Interval ref="verifyapikey.verify-api-key.apiproduct.developer.quota.interval">1</Interval> <TimeUnit ref="verifyapikey.verify-api-key.apiproduct.developer.quota.timeunit">hour</TimeUnit> <Allow count="200" countRef="verifyapikey.verify-api-key.apiproduct.developer.quota.limit"/> </Quota>
تسمح لك الحصص الديناميكية بضبط سياسة حصة واحدة تفرض إعدادات مختلفة للحصة استنادًا إلى المعلومات التي يتم تمريرها إلى سياسة الحصة. وهناك مصطلح آخر لإعدادات الحصة في هذا السياق، وهو "خطة الخدمة". وتتحقّق الحصة الديناميكية من "خطة الخدمة" للتطبيقات، ثم تفرض هذه الإعدادات.
ملاحظة: إذا حدّدت قيمة ومرجعًا لعنصر، سيحصل المرجع على الأولوية. إذا لم يتم حلّ المرجع في وقت التشغيل، يتم استخدام القيمة.
على سبيل المثال، عند إنشاء منتج لواجهة برمجة التطبيقات، يمكنك اختياريًا ضبط حد الحصة المسموح بها والوحدة الزمنية والفاصل الزمني. ومع ذلك، لا يؤدي ضبط هذه القيمة في منتج واجهة برمجة التطبيقات إلى فرض استخدامها على خادم وكيل لواجهة برمجة التطبيقات. عليك أيضًا إضافة سياسة حصة إلى الخادم الوكيل لواجهة برمجة التطبيقات الذي يقرأ هذه القيم. يمكنك الاطّلاع على إنشاء منتجات واجهة برمجة التطبيقات للحصول على مزيد من المعلومات.
في المثال أعلاه، يستخدم الخادم الوكيل لواجهة برمجة التطبيقات الذي يحتوي على سياسة الحصة سياسة CheckAPIKey المُسمّاة verify-api-key
للتحقق من صحة مفتاح واجهة برمجة التطبيقات الذي تم تمريره في الطلب. بعد ذلك، تصل سياسة الحصة إلى متغيّرات التدفق من سياسة CheckAPIKey لقراءة قيم الحصة المحدّدة في منتج واجهة برمجة التطبيقات. للحصول على مزيد من المعلومات عن متغيّرات تدفق CheckAPIKey، يمكنك الاطّلاع على التحقُّق من سياسة مفتاح واجهة برمجة التطبيقات.
ويمكنك أيضًا ضبط السمات المخصّصة على التطبيقات الفردية أو مطوّري البرامج، ثم قراءة تلك القيم في سياسة الحصة. على سبيل المثال، تريد ضبط قيم حصة مختلفة لكل مطوّر برامج. في هذه الحالة، تضبط سمات مخصّصة لمطوّر البرامج تحتوي على الحد والوحدة الزمنية والفاصل الزمني. يمكنك بعد ذلك الإشارة إلى هذه القيم في سياسة الحصة كما هو موضّح أدناه:
<Quota name="DeveloperQuota"> <Identifier ref="verifyapikey.verify-api-key.client_id"/> <Interval ref="verifyapikey.verify-api-key.developer.timeInterval"/> <TimeUnit ref="verifyapikey.verify-api-key.developer.timeUnit"/> <Allow countRef="verifyapikey.verify-api-key.developer.limit"/> </Quota>
يستخدم هذا المثال أيضًا متغيّرات تدفق CheckAPIKey للإشارة إلى السمات المخصّصة التي تم ضبطها في مطوّر البرامج.
ويمكنك استخدام أي متغيّر لضبط معلَمات سياسة الحصة. ويمكن أن تأتي هذه المتغيّرات من:
- متغيّرات التدفق
- المواقع في منتج واجهة برمجة التطبيقات أو التطبيق أو مطوّر البرامج
- خريطة قيمة المفتاح (KVM)
- عنوان ومَعلمة طلب البحث ومَعلمة النموذج وما إلى ذلك
بالنسبة إلى كل خادم وكيل لواجهة برمجة التطبيقات، يمكنك إضافة سياسة حصة تشير إلى المتغيّر نفسه مثل جميع سياسات الحصص الأخرى في جميع الخوادم الوكيلة الأخرى، أو يمكن لسياسة الحصة الإشارة إلى متغيّرات فريدة لهذه السياسة والخادم الوكيل.
وقت البدء
<Quota name="QuotaPolicy" type="calendar"> <StartTime>2017-02-18 10:30:00</StartTime> <Interval>5</Interval> <TimeUnit>hour</TimeUnit> <Allow count="99"/> </Quota>
بالنسبة إلى الحصة التي تم ضبط type
على calendar
فيها، يجب تحديد قيمة <StartTime>
صريحة. قيمة الوقت هي توقيت غرينتش، وليس التوقيت
المحلي. إذا لم تقدّم قيمة <StartTime>
لسياسة من النوع
calendar
، يُصدر Edge خطأ.
تتم إعادة تحميل عدّاد الحصة لكل تطبيق استنادًا إلى القيم <StartTime>
و<Interval>
و<TimeUnit>
. وفي هذا المثال، يبدأ احتساب الحصة في الساعة 10:30 صباحًا بتوقيت غرينيتش في 18 شباط (فبراير) 2017، وتتمّ إعادة تحميلها كل 5 ساعات. ولذلك، تتم عملية التحديث التالية الساعة 3:30 مساءً بتوقيت غرينتش في 18 شباط (فبراير) 2017.
عدّاد الدخول
<Quota name="QuotaPolicy"> <Interval>5</Interval> <TimeUnit>hour</TimeUnit> <Allow count="99"/> </Quota>
يمكن للخادم الوكيل لواجهة برمجة التطبيقات الوصول إلى متغيّرات التدفق التي تم ضبطها من خلال سياسة الحصة. يمكنك الوصول إلى متغيّرات التدفق هذه في الخادم الوكيل لواجهة برمجة التطبيقات لإجراء معالجة مشروطة أو مراقبة السياسة عند اقترابها من الحدّ المسموح به للحصص، أو عرض العدّاد الحالي لأحد التطبيقات، أو لأسباب أخرى.
بما أنّ الوصول إلى متغيّرات تدفق السياسة يستند إلى سمة السياسات name
، يمكنك الوصول إلى متغيّرات التدفق الخاصة بالسياسة في النموذج الوارد أعلاه باسم QuotaPolicy
:
ratelimit.QuotaPolicy.allowed.count
: العدد المسموح بهratelimit.QuotaPolicy.used.count
: القيمة المضادة الحاليةratelimit.QuotaPolicy.expiry.time
: وقت التوقيت العالمي المتفق عليه عند إعادة ضبط العدّاد
هناك العديد من متغيّرات التدفق الأخرى التي يمكنك الوصول إليها، كما هو موضّح أدناه.
على سبيل المثال، يمكنك استخدام سياسةassignMessage التالية لعرض قيم متغيّرات تدفق الحصة كعناوين استجابة:
<AssignMessage async="false" continueOnError="false" enabled="true" name="ReturnQuotaVars"> <AssignTo createNew="false" type="response"/> <Set> <Headers> <Header name="QuotaLimit">{ratelimit.QuotaPolicy.allowed.count}</Header> <Header name="QuotaUsed">{ratelimit.QuotaPolicy.used.count}</Header> <Header name="QuotaResetUTC">{ratelimit.QuotaPolicy.expiry.time}</Header> </Headers> </Set> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> </AssignMessage>
الطلب الأول
<Quota name="MyQuota"> <Interval>1</Interval> <TimeUnit>hour</TimeUnit> <Allow count="10000"/> </Quota>
استخدم هذا الرمز النموذجي لفرض حصة قدرها 10,000 مكالمة في الساعة الواحدة. وستعيد السياسة ضبط عدّاد الحصة في أعلى كل ساعة. وإذا وصل العدّاد إلى الحصة البالغة 10,000 مكالمة قبل نهاية الساعة، سيتم رفض المكالمات التي تتجاوز 10,000 مكالمة.
على سبيل المثال، إذا كان العدّاد يبدأ في 2017-07-08 07:00:00
، تتم إعادة ضبطه على القيمة 0 في الساعة 2017-07-08 08:00:00
(ساعة واحدة من وقت البدء). وإذا تم استلام الرسالة الأولى على 2017-07-08 07:35:28
وبلغ عدد الرسائل 10,000 قبل 2017-07-08 08:00:00
، يتم رفض المكالمات التي تتجاوز هذا العدد إلى أن تتم إعادة ضبط العدد في أعلى الساعة.
يستند وقت إعادة الضبط المضاد إلى الجمع بين <Interval>
و<TimeUnit>
. على سبيل المثال، إذا ضبطت <Interval>
على
12 لمدة <TimeUnit>
ساعة، ستتم إعادة ضبط العدّاد كل اثني عشر ساعة.
يمكنك ضبط السمة <TimeUnit>
على الدقيقة أو الساعة أو اليوم أو الأسبوع أو الشهر.
ويمكنك الإشارة إلى هذه السياسة في عدة أماكن في الخادم الوكيل لواجهة برمجة التطبيقات. على سبيل المثال، يمكنك إضافة العنوان إلى الخادم الوكيل للخادم الوكيل بحيث يتم تنفيذه على كل طلب. أو يمكنك وضع الصفحة في مسارات متعددة في الخادم الوكيل لواجهة برمجة التطبيقات. إذا كنت تستخدم هذه السياسة في أماكن متعدّدة على الخادم الوكيل، سيتم الاحتفاظ بعدّاد واحد يتم تعديله في جميع نُسخ السياسة.
بدلاً من ذلك، يمكنك تحديد سياسات متعددة للحصة المتوفرة في الخادم الوكيل لواجهة برمجة التطبيقات. تحتفظ كل سياسة حصة
بحسابها الخاص، استنادًا إلى سمة name
من السياسة.
ضبط المعرّف
<Quota name="QuotaPolicy" type="calendar"> <Identifier ref="request.header.clientId"/> <StartTime>2017-02-18 10:00:00</StartTime> <Interval>5</Interval> <TimeUnit>hour</TimeUnit> <Allow count="99"/> </Quota>
تحدّد سياسة الحصة تلقائيًا عدّادًا واحدًا للخادم الوكيل لواجهة برمجة التطبيقات، بغض النظر عن أصل الطلب. ويمكنك بدلاً من ذلك استخدام السمة <Identifier>
مع سياسة الحصة للحفاظ على عدّادات منفصلة استنادًا إلى قيمة السمة <Identifier>
.
على سبيل المثال، استخدِم العلامة <Identifier>
لتحديد عدّادات منفصلة لكل
معرّف عميل. في طلب الخادم الوكيل، يمرّر تطبيق العميل عنوانًا يحتوي على clientID
، كما هو موضَّح في المثال أعلاه.
يمكنك تحديد أي متغيّر تدفق للسمة <Identifier>
. على سبيل المثال، يمكنك تحديد أن معلَمة طلب البحث باسم id
تحتوي على المعرّف الفريد:
<Identifier ref="request.queryparam.id"/>
إذا كنت تستخدم سياسة CheckAPIKey للتحقّق من صحة مفتاح واجهة برمجة التطبيقات أو سياسات OAuthV2
مع الرموز المميزة لبروتوكول OAuth، يمكنك استخدام المعلومات في مفتاح واجهة برمجة التطبيقات أو الرمز المميّز لتحديد العدّادات الفردية
لسياسة الحصة نفسها. على سبيل المثال، تستخدم العلامة <Identifier>
التالية متغيّر client_id
الخاص بسياسة CheckAPIKey المُسمّى verify-api-key
:
<Identifier ref="verifyapikey.verify-api-key.client_id"></Identifier>
تحدّد كل قيمة client_id
فريدة عدّادها الخاص في سياسة الحصة.
دورات تدريبية
<Quota name="QuotaPolicy"> <Interval>1</Interval> <TimeUnit>day</TimeUnit> <Allow> <Class ref="request.header.developer_segment"> <Allow class="platinum" count="10000"/> <Allow class="silver" count="1000" /> </Class> </Allow> </Quota>
يمكنك ضبط حدود الحصص ديناميكيًا باستخدام عدد الحصص المستندة إلى الصف. في هذا المثال، يتم تحديد حد الحصة من خلال قيمة عنوان developer_segment
التي يتم تمريرها مع كل طلب. ويمكن أن يتضمّن هذا المتغيّر القيمة platinum
أو silver
. وإذا كان الرأس يتضمن قيمة غير صالحة، تعرض السياسة خطأً متعلّقًا بالحصة.
لمحة عن سياسة الحصة
الحصة هي حصة من رسائل الطلبات التي يمكن للخادم الوكيل لواجهة برمجة التطبيقات التعامل معها خلال فترة زمنية، مثل الدقيقة أو الساعة أو اليوم أو الأسبوع أو الشهر. تحتفظ السياسة بالعدّادات التي تحتسب عدد الطلبات التي تلقّاها الخادم الوكيل لواجهة برمجة التطبيقات. تسمح هذه الميزة لموفّري واجهة برمجة التطبيقات بفرض حدود على عدد طلبات البيانات من واجهة برمجة التطبيقات التي تجريها التطبيقات على مدار فترة زمنية معيّنة. باستخدام سياسات الحصة، يمكنك على سبيل المثال قصر التطبيقات على طلب واحد في الدقيقة أو 10,000 طلب في الشهر.
على سبيل المثال، إذا تم تحديد الحصة على أنها 10,000 رسالة شهريًا، يبدأ تحديد المعدل بعد الرسالة 10,000. ولا يهم ما إذا تم احتساب 10,000 رسالة في اليوم الأول أو اليوم الأخير من تلك الفترة، وما مِن منطقة طلبات إضافية مسموح بها إلى أن تتم إعادة ضبط عدّاد الحصة تلقائيًا في نهاية الفاصل الزمني المحدّد أو حتى تتم إعادة ضبط الحصة صراحةً باستخدام سياسة إعادة ضبط الحصة.
إنّ أحد الاختلافات في الحصة المعروفة باسم SpikeArrest يمنع حدوث ارتفاعات مفاجئة في عدد الزيارات (أو لقطات متسلسلة) ناتجة عن الزيادة المفاجئة في الاستخدام أو برامج البرامج الضارة أو الهجمات الضارة. للحصول على مزيد من المعلومات عن SpikeArrest، يُرجى الاطّلاع على سياسة توقّف شركة Spike.
تنطبق الحصص على الخوادم الوكيلة لواجهة برمجة التطبيقات ولا يتم توزيعها بين الخوادم الوكيلة لواجهة برمجة التطبيقات. على سبيل المثال، إذا كان لديك ثلاثة خوادم وكيلة لواجهة برمجة التطبيقات في منتج لواجهة برمجة التطبيقات، لا تتم مشاركة حصة واحدة على مستوى جميع الخوادم الثلاثة حتى إذا كان المستخدمون الثلاثة يستخدمون إعداد سياسة الحصة نفسها.
أنواع سياسات الحصة
تتيح سياسة الحصة عدة أنواع مختلفة من السياسات: السياسة التلقائية calendar
وflexi
وrollingwindow
. ويحدّد كل نوع وقت بدء عدّاد الحصة ووقت إعادة ضبطه، كما هو موضّح في الجدول التالي:
الوحدة الزمنية | إعادة الضبط التلقائية (أو إفراغ) | إعادة ضبط التقويم | إعادة ضبط flexi |
---|---|---|---|
دقيقة | بداية الدقيقة التالية | دقيقة واحدة بعد <StartTime> |
دقيقة واحدة بعد الطلب الأول |
ساعة | أعلى ساعة تالية | ساعة واحدة بعد <StartTime> |
ساعة واحدة بعد الطلب الأول |
يوم | منتصف الليل بتوقيت غرينتش | 24 ساعة بعد <StartTime> |
24 ساعة بعد الطلب الأول |
أسبوع | منتصف الليل بتوقيت غرينتش يوم الأحد في نهاية الأسبوع | أسبوع واحد بعد <StartTime> |
أسبوع واحد بعد الطلب الأول |
شهر | منتصف الليل بتوقيت غرينتش لآخر يوم من الشهر | شهر واحد (28 يومًا) بعد <StartTime> |
شهر واحد (28 يومًا) بعد الطلب الأول |
بالنسبة إلى type="calendar"
، يجب تحديد قيمة <StartTime>
.
لا يسرد الجدول قيمة النوع rollingwindow
. تعمل حصص
النوافذ المتعاقبة من خلال تحديد حجم "النافذة" الخاصة بالحصة، مثل فترة ساعة واحدة أو يوم واحد. وعند تلقّي طلب جديد، تحدّد السياسة ما إذا تم تجاوز الحصة المحددة في "الفترة" الزمنية السابقة.
على سبيل المثال، يمكنك تحديد نافذة لمدة ساعتين تسمح بـ 1000 طلب. نتلقّى طلبًا جديدًا في الساعة 4:45 بعد الظهر، وتحتسب السياسة عدد الحصص خلال آخر ساعتَين، أي عدد الطلبات منذ الساعة 2:45 بعد الظهر. إذا لم يتم تجاوز الحد الأقصى للحصة في غضون ساعتين، سيُسمح للطلب.
عِنْدَ دَقِيقَة وَاحِدَة، فِي السَّاعَة 4:46 بَعْدَ الظُّهْرْ، يَتِمّْ تَوْجِيهْ طَلَبْ آخَرْ. تحسب السياسة الآن عدد الحصص منذ 2:46 مساءً لتحديد ما إذا تم تجاوز الحدّ الأقصى.
بالنسبة إلى النوع rollingwindow
، لا تتم إعادة ضبط العدّاد مطلقًا، ولكن تتم إعادة احتسابه في كل طلب.
فهم عدادات الحصة
تحتفظ سياسة الحصة تلقائيًا بعدّاد واحد بغض النظر عن عدد المرات التي تشير إليها في خادم وكيل لواجهة برمجة التطبيقات. يعتمد اسم عدّاد الحصة على
سمة name
للسياسة.
على سبيل المثال، يمكنك إنشاء سياسة حصص تُسمّى MyQuotaPolicy
مع تقديم 5 طلبات كحد أقصى ووضعها على مسارات متعددة (التدفق "أ" و"ب" و"ج") في الخادم الوكيل لواجهة برمجة التطبيقات. على الرغم من أنه يتم استخدامه في عمليات متعددة، يحتفظ بعدّاد واحد يتم تعديله في جميع نُسخ السياسة:
- تم تنفيذ التدفق "أ" -> تم تنفيذ MyQuotaPolicy والعدّاد = 1
- تم تنفيذ مسار "ب" -> يتم تنفيذ MyQuotaPolicy والعدّاد = 2
- تم تنفيذ العملية "أ" -> يتم تنفيذ MyQuotaPolicy والعدّاد = 3
- تم تنفيذ العملية "ج" -> تم تنفيذ MyQuotaPolicy وعداده = 4
- تم تنفيذ التدفق "أ" -> تم تنفيذ MyQuotaPolicy وعدّاده = 5
ويتم رفض الطلب التالي لأي من المسارات الثلاثة لأنّ عدّاد الحصة قد بلغ الحدّ المسموح به.
إنّ استخدام سياسة الحصة نفسها في أكثر من مكان في مسار الخادم الوكيل لواجهة برمجة التطبيقات، والذي قد يتسبب في تشغيل الحصة بشكل غير مقصود عن غير قصد، هو نمط مضاد للوصف في كتاب كتاب Apigee Edge Antipatterns.
بدلاً من ذلك، يمكنك تحديد سياسات حصص متعددة في الخادم الوكيل لواجهة برمجة التطبيقات واستخدام سياسة مختلفة في كل عملية. تحتفظ كل سياسة حصة بعدّادها الخاص استنادًا إلى السمة name
الخاصة بالسياسة.
أو يمكنك استخدام العناصر <Class>
أو <Identifier>
في سياسة الحصة لتحديد عدّادات فريدة في سياسة واحدة. باستخدام هذه
العناصر، يمكن أن تحتفظ سياسة واحدة بعدّادات مختلفة استنادًا إلى التطبيق الذي يقدّم الطلب
ومطوّر التطبيقات الذي يقدّم الطلب أو معرِّف عميل أو معرِّف عميل آخر وغير ذلك. راجِع الأمثلة أعلاه للحصول على مزيد من المعلومات حول استخدام العناصر <Class>
أو <Identifier>
.
تدوين الوقت
يتم ضبط جميع أوقات الحصة على المنطقة الزمنية التوقيت العالمي المنسّق (UTC).
يتّبع تدوين وقت الحصة تدوين التاريخ المعياري الدولي كما هو محدّد في المعيار ISO 8601 الدولي.
يتم تحديد التواريخ بالتنسيق التالي: السنة والشهر واليوم، بالتنسيق التالي: YYYY-MM-DD
.
على سبيل المثال، 2015-02-04
يمثّل 4 شباط (فبراير) 2015.
يتم تعريف الوقت من اليوم بالساعات والدقائق والثواني بالتنسيق التالي: hours:minutes:seconds
. على سبيل المثال، تمثّل السمة 23:59:59
الوقت قبل ثانية واحدة من منتصف الليل.
يُرجى العِلم أنّ الترميزَين 00:00:00
و24:00:00
متاحان للتفريق بين منتصف الليل واللتين يمكن ربطهما بتاريخ واحد. وبالتالي، فإنّ 2015-02-04
24:00:00
هو التاريخ والوقت نفسهما المُستخدَم في السمة 2015-02-05 00:00:00
. والثانية هي عادةً الترميز المفضّل.
الحصول على إعدادات الحصة من إعداد منتج واجهة برمجة التطبيقات
يمكنك ضبط حدود الحصة في إعدادات منتجات واجهة برمجة التطبيقات. ولا تفرض هذه الحدود الحصة تلقائيًا. بدلاً من ذلك، يمكنك الرجوع إلى إعدادات حصة المنتجات في سياسة الحصة. في ما يلي بعض مزايا ضبط حصة على المنتج حتى تتم الإشارة إليها في سياسات الحصة:
- يمكن لسياسات الحصة استخدام إعداد موحّد على جميع الخوادم الوكيلة لواجهة برمجة التطبيقات في منتج واجهة برمجة التطبيقات.
- يمكنك إجراء تغييرات على وقت التشغيل ضمن إعداد الحصة على منتج واجهة برمجة التطبيقات، بالإضافة إلى سياسات الحصة التي تشير إلى القيمة يتم تعديل قيم الحصة تلقائيًا.
لمزيد من المعلومات حول استخدام إعدادات الحصة من منتج واجهة برمجة التطبيقات، يُرجى الاطّلاع على المثال "الحصة الديناميكية" أعلاه..
للحصول على معلومات حول ضبط منتجات واجهة برمجة التطبيقات باستخدام حدود الحصة، يُرجى الاطِّلاع على إنشاء منتجات واجهة برمجة التطبيقات.
مرجع العنصر
في ما يلي العناصر والسمات التي يمكنك ضبطها في هذه السياسة. يُرجى العِلم أنّ بعض تركيبات العناصر
استبعادية أو غير مطلوبة بشكل متبادل. يمكنك الاطّلاع على العيّنات لاستخدام معيّن. تتوفّر المتغيّرات verifyapikey.VerifyAPIKey.apiproduct.*
تلقائيًا في حال استخدام سياسة "التحقّق من مفتاح واجهة برمجة التطبيقات" المعروفة باسم "VerifyAPIKey" للتحقّق من مفتاح واجهة برمجة التطبيقات في الطلب.
تأتي قيم المتغيّرات من إعدادات الحصة لمنتج واجهة برمجة التطبيقات التي يرتبط بها المفتاح، كما هو موضّح في الحصول على إعدادات الحصة من إعدادات منتج واجهة برمجة التطبيقات.
<Quota async="false" continueOnError="false" enabled="true" name="Quota-3" type="calendar"> <DisplayName>Quota 3</DisplayName> <Allow count="2000" countRef="verifyapikey.VerifyAPIKey.apiproduct.developer.quota.limit"/> <Allow> <Class ref="request.queryparam.time_variable"> <Allow class="peak_time" count="5000"/> <Allow class="off_peak_time" count="1000"/> </Class> </Allow> <Interval ref="verifyapikey.VerifyAPIKey.apiproduct.developer.quota.interval">1</Interval> <TimeUnit ref="verifyapikey.VerifyAPIKey.apiproduct.developer.quota.timeunit">month</TimeUnit> <StartTime>2017-7-16 12:00:00</StartTime> <Distributed>false</Distributed> <Synchronous>false</ Synchronous> <AsynchronousConfiguration> <SyncIntervalInSeconds>20</ SyncIntervalInSeconds> <SyncMessageCount>5</ SyncMessageCount> </AsynchronousConfiguration> <Identifier/> <MessageWeight/> </Quota>
سمات <الحصة>
<Quota async="false" continueOnError="false" enabled="true" name="Quota-3" type="calendar">
السمات التالية مخصّصة لهذه السياسة.
السمة | الوصف | تلقائي | التواجد في المنزل |
---|---|---|---|
كتابة |
يُستخدم لتحديد وقت وكيفية استفادة عدّاد الحصة من استخدام الحصة. يمكنك الاطّلاع على أنواع سياسات الحصة للحصول على مزيد من المعلومات. إذا حذفت قيمة وتتضمّن القيم الصالحة ما يلي:
|
تقويم | إجراء اختياري |
يصف الجدول التالي السمات الشائعة لجميع العناصر الرئيسية للسياسة:
السمة | الوصف | تلقائي | التواجد في المنزل |
---|---|---|---|
name |
الاسم الداخلي للسياسة. يمكن أن تحتوي قيمة السمة اختياريًا، يمكنك استخدام العنصر |
لا ينطبق | عنصر مطلوب |
continueOnError |
يمكنك ضبطها على يمكنك ضبط القيمة على |
false | إجراء اختياري |
enabled |
اضبط الإعدادات على اضبط السياسة على |
صحيح | إجراء اختياري |
async |
تم إيقاف هذه السمة نهائيًا. |
false | منهي العمل به |
عنصر <DisplayName>
يمكنك استخدام هذه السمة بالإضافة إلى السمة name
لتصنيف السياسة في محرّر الخادم الوكيل لواجهة المستخدم الخاصة بالإدارة باستخدام اسم بلغة مختلفة.
<DisplayName>Policy Display Name</DisplayName>
تلقائي |
لا ينطبق إذا حذفت هذا العنصر، سيتم استخدام قيمة السمة |
---|---|
التواجد في المنزل | إجراء اختياري |
Type | سلسلة |
عنصر <السماح>
تحدِّد هذه السمة الحد الأقصى لعدد الحصص. وإذا وصل العدّاد للسياسة إلى هذا الحدّ الأقصى، يتم رفض الطلبات اللاحقة إلى أن تتم إعادة ضبط العدّاد.
يظهر أدناه ثلاث طرق لضبط العنصر <Allow>
:
<Allow count="2000"/>
<Allow countRef="verifyapikey.VerifyAPIKey.apiproduct.developer.quota.limit"/>
<Allow count="2000" countRef="verifyapikey.VerifyAPIKey.apiproduct.developer.quota.limit"/>
إذا حدّدت السمتَين count
وcountRef
، سيحصل countRef
على الأولوية. إذا لم يتم حلّ countRef
في وقت التشغيل، سيتم استخدام قيمة
count
.
تلقائي: | لا ينطبق |
الحضور: | إجراء اختياري |
النوع: | عدد صحيح |
السمات
السمة | الوصف | تلقائي | التواجد في المنزل |
---|---|---|---|
العدد |
يُستخدم لتحديد عدد الرسائل للحصة. على سبيل المثال، تشير قيمة السمة |
2000 | إجراء اختياري |
عدد العدّات |
يُرجى استخدامها لتحديد متغيّر مسار يحتوي على عدد الرسائل لحصة معيّنة.
وتكون الأولوية للسمة |
لا ينطبق | إجراء اختياري |
عنصر <Allow>/<Class>
ويتيح لك العنصر <Class>
توحيد قيمة العنصر <Allow>
استنادًا إلى قيمة متغيّر التدفق. لكل
علامة <Allow>
فرعية مختلفة على <Class>
،
تحتفظ السياسة بعدّاد مختلف.
لاستخدام العنصر <Class>
، حدِّد متغيّر مسار باستخدام السمة ref
إلى العلامة <Class>
. بعد ذلك، تستخدم Edge قيمة
متغيّر التدفق لاختيار إحدى العلامات الفرعية <Allow>
لتحديد العدد
المسموح به للسياسة. تتطابق شبكة Edge مع قيمة متغيّر التدفق مع السمة class
للعلامة <Allow>
، كما هو موضّح في ما يلي:
<Allow> <Class ref="request.queryparam.time_variable"> <Allow class="peak_time" count="5000"/> <Allow class="off_peak_time" count="1000"/> </Class> </Allow>
في هذا المثال، يتم تحديد عدّاد الحصة الحالية من خلال قيمة معلَمة طلب البحث time_variable
التي تم تمريرها مع كل طلب. ويمكن أن يتضمّن هذا المتغيّر القيمة peak_time
أو off_peak_time
. إذا كانت معلمة طلب البحث تحتوي على قيمة غير صالحة، ستعرض السياسة خطأً بشأن انتهاك الحصة.
تلقائي: | لا ينطبق |
الحضور: | إجراء اختياري |
النوع: | لا ينطبق |
السمات
السمة | الوصف | تلقائي | التواجد في المنزل |
---|---|---|---|
مرجع |
يُستخدم لتحديد متغيّر تدفق يحتوي على فئة الحصة. |
لا ينطبق | عنصر مطلوب |
العنصر <Allow>/<Class>/<Allow>
يحدّد العنصر <Allow>
الحدّ المسموح به للعدّاد المحدّد من خلال العنصر <Class>
. لكل
علامة <Allow>
فرعية مختلفة على <Class>
،
تحتفظ السياسة بعدّاد مختلف.
على سبيل المثال:
<Allow> <Class ref="request.queryparam.time_variable"> <Allow class="peak_time" count="5000"/> <Allow class="off_peak_time" count="1000"/> </Class> </Allow>
في هذا المثال، تحتفظ سياسة الحصة بعدّدتَين للحصت باسم peak_time
وoff_peak_time
.
تلقائي: | لا ينطبق |
الحضور: | إجراء اختياري |
النوع: | لا ينطبق |
السمات
السمة | الوصف | تلقائي | التواجد في المنزل |
---|---|---|---|
صنف |
تحديد اسم عدّاد الحصة. |
لا ينطبق | عنصر مطلوب |
العدد | لتحديد الحد الأقصى لحصة العدّاد | لا ينطبق | عنصر مطلوب |
عنصر <Interval>
استخدِم هذه السياسة لتحديد عدد صحيح (على سبيل المثال، 1 و2 و5 و60 وما إلى ذلك) سيتم إقرانه بـ TimeUnit
الذي تحدّده (الدقيقة أو الساعة أو اليوم أو الأسبوع أو الشهر) لتحديد فترة زمنية يتم خلالها استخدام Edge في الحصة.
على سبيل المثال، تعني السمة Interval
من 24
مع القيمة TimeUnit
في hour
أنّه سيتم احتساب الحصة على مدار 24 ساعة.
<Interval ref="verifyapikey.VerifyAPIKey.apiproduct.developer.quota.interval">1</Interval>
تلقائي: | لا ينطبق |
الحضور: | عنصر مطلوب |
النوع: | عدد صحيح |
السمات
السمة | الوصف | تلقائي | التواجد في المنزل |
---|---|---|---|
مرجع |
يمكنك استخدامها لتحديد متغيّر مسار يحتوي على الفاصل الزمني لحصة معيّنة. |
لا ينطبق | إجراء اختياري |
عنصر <TimeUnit>
استخدم ذلك لتحديد الوحدة الزمنية السارية على الحصة.
على سبيل المثال، تعني السمة Interval
من 24
مع القيمة TimeUnit
في hour
أنّه سيتم احتساب الحصة على مدار 24 ساعة.
<TimeUnit ref="verifyapikey.VerifyAPIKey.apiproduct.developer.quota.timeunit">month</TimeUnit>
تلقائي: | لا ينطبق |
الحضور: | عنصر مطلوب |
النوع: |
سلسلة. يمكنك الاختيار من بين |
السمات
السمة | الوصف | تلقائي | التواجد في المنزل |
---|---|---|---|
مرجع | يُرجى استخدامها لتحديد متغيّر تدفق يحتوي على الوحدة الزمنية لحصة معيّنة. ref
تحظى بالأولوية على قيمة الفاصل الزمني الصريحة. وإذا لم يتم حلّ ref
في وقت التشغيل، يتم استخدام القيمة. |
لا ينطبق | إجراء اختياري |
عنصر <StartTime>
عند ضبط type
على calendar,
، يتم تحديد التاريخ والوقت الذي سيبدأ فيه عدّاد الحصة، بغض النظر عمّا إذا تم استلام أي طلبات من أي تطبيقات أم لا.
يجب تقديم قيمة StartTime
صريحة عند ضبط type
صراحةً على
calendar,
، ولا يمكنك استخدام مرجع لمتغيّر تدفق. وفي حال تحديد
قيمة StartTime
عند عدم ضبط أي قيمة type
، ستظهر لك
رسالة خطأ.
على سبيل المثال:
<StartTime>2017-7-16 12:00:00</StartTime>
تلقائي: | لا ينطبق |
الحضور: | مطلوبة عند ضبط type على calendar . |
النوع: |
سلسلة بتنسيق التاريخ والوقت ISO 8601 |
عنصر <الموزّع>
يمكن أن يؤدي تثبيت Edge إلى استخدام معالج رسائل واحد أو أكثر لمعالجة الطلبات. اضبط هذا العنصر على true
لتحديد أنّ السياسة يجب أن تحافظ على عدّاد مركزي وتُزامنه باستمرار على جميع معالجات الرسائل. قد تعمل معالِجات الرسائل في جميع مناطق التوفّر و/أو المناطق.
إذا كنت تستخدم القيمة التلقائية false
، قد تتجاوز حصتك لأن عدد كل معالج رسائل لا تتم مشاركته:
<Distributed>true</Distributed>
لضمان مزامنة العدّادات وتعديلها على كل طلب، اضبط
<Distributed>
و<Synchronous>
على "صحيح":
<Distributed>true</Distributed> <Synchronous>true</Synchronous>
تلقائي: | false |
الحضور: | إجراء اختياري |
النوع: | منطقي |
عنصر <متزامن>
اضبُط على true
لتعديل عدّاد موزّع بشكل متزامن. وهذا يعني أنّه يتم إجراء التحديث إلى العدّ التنازلي في الوقت نفسه الذي يتم فيه مراجعة الحصة عند طلب واجهة برمجة التطبيقات. اضبط السمة على true
إذا كان من الضروري عدم السماح بأي
طلبات من واجهة برمجة التطبيقات تتجاوز الحصة المخصصة.
اضبُط على false
لتعديل عدّاد الحصة بشكل غير متزامن. ويعني هذا أنه من المحتمل أن تنتقل بعض طلبات البيانات من واجهة برمجة التطبيقات التي تجاوزت الحصة المحددة، وذلك استنادًا إلى وقت تعديل عدّاد الحصة في المستودع المركزي بشكل غير متزامن. ومع ذلك، لن تواجه
تأثيرات الأداء المحتملة المرتبطة بالتحديثات المتزامنة.
تبلغ الفاصل الزمني للتحديث التلقائي غير المتزامن 10 ثوانٍ. يمكنك استخدام العنصر AsynchronousConfiguration
لضبط هذا السلوك غير المتزامن.
<Synchronous>false</Synchronous>
تلقائي: | false |
الحضور: | إجراء اختياري |
النوع: | منطقي |
عنصر <AsynchronousConfiguration>
تضبط هذه السياسة الفاصل الزمني بين عدّادات حصص التوزيع، عندما لا يكون عنصر ضبط السياسة <Synchronous>
متاحًا أو مضبوطًا على false
.
يمكنك المزامنة إما بعد فترة زمنية أو عدد الرسائل، وذلك باستخدام إما العناصر الثانوية SyncIntervalInSeconds
أو SyncMessageCount
.
يتعاون كل منهما معًا. على سبيل المثال:
<AsynchronousConfiguration> <SyncIntervalInSeconds>20</SyncIntervalInSeconds> </AsynchronousConfiguration>
أو
<AsynchronousConfiguration> <SyncMessageCount>5</SyncMessageCount> </AsynchronousConfiguration>
تلقائي: | SyncIntervalInSeconds = 10 ثوانٍ |
الحضور: | هذه السمة اختيارية، ويتم تجاهلها عند ضبط <Synchronous> على
true . |
النوع: |
مُجمّع |
العنصر <AsynchronousConfiguration>/<SyncIntervalInSeconds>
يمكنك استخدام هذه السياسة لإلغاء السلوك التلقائي الذي يتم فيه إجراء تعديلات غير متزامنة بعد فاصل زمني مدته 10 ثوانٍ.
<AsynchronousConfiguration> <SyncIntervalInSeconds>20</SyncIntervalInSeconds> </AsynchronousConfiguration>
يجب أن تكون الفاصل الزمني للمزامنة أكبر من 10 ثوانٍ كما هو موضّح في الموضوع الحدود.
تلقائي: | 10 |
الحضور: | إجراء اختياري |
النوع: |
عدد صحيح |
العنصر <AsynchronousConfiguration>/<SyncMessageCount>
يحدِّد هذا الإعداد عدد الطلبات على جميع معالجات رسائل Apigee بين تعديلات الحصة.
<AsynchronousConfiguration> <SyncMessageCount>5</SyncMessageCount> </AsynchronousConfiguration>
يوضّح هذا المثال أنّ عدد الحصص يتم تعديله كل 5 طلبات في كل معالج رسائل Apigee Edge.
تلقائي: | timing fixed in amara |
الحضور: | إجراء اختياري |
النوع: |
عدد صحيح |
العنصر <معرّف>
يمكنك استخدام العنصر <Identifier>
لضبط السياسة من أجل إنشاء عدّادات
فريدة استنادًا إلى متغيّر تدفق.
إذا كنت لا تستخدم هذا العنصر، فإن السياسة تستخدم عدّادًا واحدًا يتم تطبيقه على الحصة.
تتم أيضًا مناقشة هذا العنصر في مشاركة "منتدى Apigee" التالية: http://community.apigee.com/questions/2807/how-does-the-edge-quota-policy-work-when-no-identi.html.
<Identifier ref="verifyapikey.verify-api-key.client_id"/>
تلقائي: | لا ينطبق |
الحضور: | إجراء اختياري |
النوع: |
سلسلة |
السمات
السمة | الوصف | تلقائي | التواجد في المنزل |
---|---|---|---|
مرجع |
تحدِّد هذه السياسة متغيّر التدفق الذي يحدّد العدّ التنازلي الذي سيتم استخدامه في الطلب. ويمكن أن يكون المعرِّف عنوان HTTP أو معلَمة طلب بحث أو معلَمة نموذج أو محتوى رسالة فريدًا لكل تطبيق أو مستخدم تطبيق أو مطوّر تطبيقات أو منتج واجهة برمجة تطبيقات أو غيرها من السمات. السمة في بعض الحالات، يجب استرداد إعدادات الحصة في حال عدم توفّر |
لا ينطبق | إجراء اختياري |
عنصر <MessageWeight>
استخدم لتحديد وزن كل رسالة. استخدِم حجم الرسالة لزيادة تأثير رسائل الطلب التي تستهلك على سبيل المثال المزيد من الموارد الحسابية مقارنةً بالرسائل الأخرى.
على سبيل المثال، تريد احتساب رسائل POST على أنها مضاعفة المحتوى أو مكلفًا مثل رسائل GET. لذلك، يمكنك ضبط السمة MessageWeight
على القيمة 2 للوظيفة POST وعلى القيمة 1 للحصول على
دالة GET. يمكنك أيضًا ضبط MessageWeight
على 0 حتى لا يؤثر الطلب
في العدّاد. في هذا المثال، إذا كانت الحصة هي 10 رسائل في الدقيقة وكانت MessageWeight
لطلبات POST هي 2
، ستسمح الحصة بـ 5 طلبات POST في أي فاصل زمني مدته 10 دقائق. يتم رفض أي طلب إضافي أو POST أو GET قبل إعادة ضبط العدّاد.
يجب تحديد القيمة التي تمثّل MessageWeight
باستخدام متغيّر تدفق، ويمكن استخراجها من عناوين HTTP أو معلّمات طلب البحث أو حمولة طلب XML أو JSON أو أي متغيّر تدفق آخر. على سبيل المثال، تحدّد العنوان في عنوان بعنوان weight
:
<MessageWeight ref="message_weight"/>
تلقائي: | لا ينطبق |
الحضور: | إجراء اختياري |
النوع: |
عدد صحيح |
متغيّرات التدفق
تتم تعبئة متغيّرات التدفق المحدّدة مسبقًا التالية تلقائيًا عند تنفيذ سياسة الحصة. للتعرّف على مزيد من المعلومات عن متغيّرات تدفق البيانات، يمكنك الاطّلاع على مرجع المتغيّرات.
المتغيّرات | Type | الأذونات | الوصف |
---|---|---|---|
Ratelimit.{policy_name}.allowed.count | طويلة | قراءة فقط | عرض عدد الحصص المسموح به |
Ratelimit.{policy_name}.used.count | طويلة | قراءة فقط | عرض الحصة الحالية المستخدمة ضمن فاصل حصة |
Ratelimit.{policy_name}.available.count | طويلة | قراءة فقط | عرض عدد الحصص المتاحة في فاصل الحصة |
Ratelimit.{policy_name}.exceed.count | طويلة | قراءة فقط | عرض 1 بعد تجاوز الحصة |
Ratelimit.{policy_name}.total.exceed.count | طويلة | قراءة فقط | عرض 1 بعد تجاوز الحصة |
Ratelimit.{policy_name}.expiration.time | طويلة | قراءة فقط |
تعرض التوقيت العالمي المُنسّق بالمللي ثانية الذي يحدّد وقت انتهاء صلاحية الحصة وعند بدء الفاصل الزمني الجديد. عندما يكون نوع سياسة الحصة هو |
Ratelimit.{policy_name}.identifier | سلسلة | قراءة فقط | عرض مرجع معرّف (العميل) المرفق بالسياسة |
Ratelimit.{policy_name}.class | سلسلة | قراءة فقط | عرض الصف المرتبط بمعرّف العميل |
Ratelimit.{policy_name}.class.allowed.count | طويلة | قراءة فقط | عرض عدد الحصص المسموح به المحدّد في الصف |
Ratelimit.{policy_name}.class.used.count | طويلة | قراءة فقط | عرض الحصة المستخدمة داخل صف دراسي |
Ratelimit.{policy_name}.class.available.count | طويلة | قراءة فقط | عرض عدد الحصص المتاحة في الصف |
Ratelimit.{policy_name}.class.exceed.count | طويلة | قراءة فقط | عرض عدد الطلبات التي تتجاوز الحد الأقصى المسموح به في الصف خلال الفترة المحدّدة للحصة |
Ratelimit.{policy_name}.class.total.exceed.count | طويلة | قراءة فقط | يعرض إجمالي عدد الطلبات التي تتجاوز الحد الأقصى في الفئة خلال جميع الفواصل الزمنية، لذلك يكون مجموع class.exceed.count لجميع فترات الحصة. |
Ratelimit.{policy_name}.failed | منطقي | قراءة فقط |
يشير إلى ما إذا كانت السياسة تعذّر (صحيح أم خطأ). |
مرجع الخطأ
يصف هذا القسم رموز الخطأ ورسائل الخطأ التي يتم عرضها والمتغيّرات التي تم ضبطها من خلال Edge عندما تؤدي هذه السياسة إلى عرض خطأ. من المهم معرفة هذه المعلومات إذا كنت بصدد تطوير قواعد أخطاء للتعامل مع الأخطاء. لمزيد من المعلومات، يُرجى الاطّلاع على المعلومات التي تحتاج إلى معرفتها عن الأخطاء المتعلقة بالسياسات والتعامل مع الأخطاء.
أخطاء وقت التشغيل
يمكن أن تحدث هذه الأخطاء عند تنفيذ السياسة.
رمز الخطأ | رموز حالة HTTP | السبب | إصلاح |
---|---|---|---|
policies.ratelimit.FailedToResolveQuotaIntervalReference |
500 | ويحدث ذلك إذا لم يتم تحديد العنصر <Interval> ضمن سياسة الحصة. هذا العنصر
إلزامي ويتم استخدامه لتحديد الفاصل الزمني الساري على الحصة. يمكن أن يكون الفاصل الزمني
دقائق أو ساعات أو أيامًا أو أسابيع أو أشهرًا كما هو موضّح في العنصر <TimeUnit> . |
build |
policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference |
500 | ويحدث ذلك إذا لم يتم تحديد العنصر <TimeUnit> ضمن سياسة الحصة. هذا العنصر
إلزامي ويتم استخدامه لتحديد الوحدة الزمنية السارية على الحصة. يمكن أن يكون الفاصل الزمني
بالدقائق أو الساعات أو الأيام أو الأسابيع أو الأشهر. |
build |
policies.ratelimit.InvalidMessageWeight |
500 | يحدث ذلك إذا كانت قيمة العنصر <MessageWeight> المحددة من خلال متغيّر تدفق
غير صالحة (قيمة ليست عددًا صحيحًا). |
build |
policies.ratelimit.QuotaViolation |
500 | تم تجاوز الحد الأقصى للحصة. | لا ينطبق |
أخطاء النشر
اسم الخطأ | السبب | إصلاح |
---|---|---|
InvalidQuotaInterval |
إذا لم يكن الفاصل الزمني للحصة المحددة في العنصر <Interval> عددًا صحيحًا، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات. على سبيل المثال، إذا كانت الفاصل الزمني للحصة المحددة
هو 0.1 في العنصر <Interval> ، سيتعذّر نشر
الخادم الوكيل لواجهة برمجة التطبيقات.
|
build |
InvalidQuotaTimeUnit |
وفي حال كانت الوحدة الزمنية المحدّدة في العنصر <TimeUnit> غير متوافقة،
سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات. الوحدات الزمنية المتوافقة هي:
minute وhour وday وweek وmonth .
|
build |
InvalidQuotaType |
إذا كان نوع الحصة المحدّد في السمة type في العنصر <Quota> غير صالح، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات. إنّ أنواع الحصص المتوافقة هي default وcalendar وflexi وrollingwindow .
|
build |
InvalidStartTime |
إذا كان تنسيق الوقت المحدّد في العنصر <StartTime> غير صالح، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات. التنسيق الصالح هو yyyy-MM-dd HH:mm:ss ، وهو تنسيق التاريخ والوقت ISO 8601. على سبيل المثال، إذا كان الوقت المحدّد في العنصر <StartTime> هو 7-16-2017 12:00:00 ، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.
|
build |
StartTimeNotSupported |
إذا تم تحديد العنصر <StartTime> الذي لا يكون نوع الحصة هو calendar من النوع، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات. والعنصر <StartTime>
متاح فقط لنوع الحصة calendar . على سبيل المثال، إذا تم ضبط السمة type على flexi أو rolling window في العنصر <Quota> ، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.
|
build |
InvalidTimeUnitForDistributedQuota |
وفي حال ضبط العنصر <Distributed> على true وضبط العنصر <TimeUnit> على
second ، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات. الوحدة الزمنية second غير صالحة لحصة موزّعة. |
build |
InvalidSynchronizeIntervalForAsyncConfiguration |
إذا كانت القيمة المحدّدة للعنصر <SyncIntervalInSeconds> ضمن العنصر <AsynchronousConfiguration> في سياسة الحصة أقل من الصفر، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات. |
build |
InvalidAsynchronizeConfigurationForSynchronousQuota |
إذا تم ضبط قيمة العنصر <AsynchronousConfiguration> على true في سياسة الحصة، التي تم أيضًا ضبط إعدادات غير متزامنة باستخدام العنصر <AsynchronousConfiguration> ، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات. |
build |
متغيّرات الخطأ
يتم ضبط هذه المتغيّرات عندما تؤدي هذه السياسة إلى حدوث خطأ. لمزيد من المعلومات، اطّلِع على ما تحتاج إلى معرفته عن أخطاء السياسات.
المتغيّرات | المكان | مثال |
---|---|---|
fault.name="fault_name" |
fault_name هو اسم الخطأ، كما هو موضّح في جدول أخطاء وقت التشغيل أعلاه. اسم الخطأ هو الجزء الأخير من رمز الخطأ. | fault.name Matches "QuotaViolation" |
ratelimit.policy_name.failed |
policy_name هو الاسم المحدَّد للمستخدم بخصوص السياسة التي أدى إلى حدوث الخطأ. | ratelimit.QT-QuotaPolicy.failed = true |
مثال على استجابة الخطأ
{ "fault":{ "detail":{ "errorcode":"policies.ratelimit.QuotaViolation" }, "faultstring":"Rate limit quota violation. Quota limit exceeded. Identifier : _default" } }
مثال على قاعدة خطأ
<FaultRules> <FaultRule name="Quota Errors"> <Step> <Name>JavaScript-1</Name> <Condition>(fault.name Matches "QuotaViolation") </Condition> </Step> <Condition>ratelimit.Quota-1.failed=true</Condition> </FaultRule> </FaultRules>
المخططات
مواضيع ذات صلة
مقارنة سياسات الحصة والتوقّف عن الزيادة المفاجئة والحدّ الأقصى لمعدّل الاستخدام المتزامن