أنت تعرض مستندات Apigee Edge.
انتقل إلى
مستندات Apigee X. معلومات
المزايا
يمكنك استخدام سياسة الحصة لضبط عدد رسائل الطلبات التي يسمح بها الخادم الوكيل لواجهة برمجة التطبيقات. فترة زمنية، مثل دقيقة أو ساعة أو يوم أو أسبوع أو شهر. يمكنك تعيين الحصة نفسه لجميع التطبيقات التي يمكنها الوصول إلى الخادم الوكيل لواجهة برمجة التطبيقات، أو يمكنك ضبط الحصة استنادًا إلى ما يلي:
- المنتج الذي يحتوي على الخادم الوكيل لواجهة برمجة التطبيقات
- التطبيق الذي يطلب واجهة برمجة التطبيقات
- مطوّر التطبيق
- معايير أخرى عديدة
لا تستخدِم الحصة لتوفير الحماية من الارتفاعات الإجمالية في عدد الزيارات. لذلك، استخدِم Spike Arrest . الاطّلاع على اعتقال سباق .
الفيديوهات
تتيح هذه الفيديوهات إدارة الحصص من خلال سياسة الحصص:
مقدمة (New Edge)
مقدمة (Classic Edge)
الحصة الديناميكية
موزعة متزامن
وزن الرسالة
التقويم
نافذة دوّارة
Flexi
الحصة المشروطة
متغيرات التدفق
خطأ أثناء المعالجة
نماذج
توضّح نماذج رموز السياسة هذه كيفية بدء فترات الحصّة وإنهائها من خلال ما يلي:
حصة ديناميكية أكبر
<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>
تمكِّنك الحصص الديناميكية من تهيئة سياسة حصة واحدة تفرض حصة مختلفة الإعدادات استنادًا إلى المعلومات التي تم تمريرها إلى سياسة الحصة. هناك مصطلح آخر لإعدادات الحصة في هذا السياق هو "خطة الخدمة". تتحقّق الحصة الديناميكية من التطبيقات "خطة الخدمة" بعد ذلك لفرض هذه الإعدادات.
ملاحظة: إذا حددت قيمةً ومرجعًا لعنصر ما، فإن المرجع يحصل على الأولوية. إذا لم يتم حل المرجع في وقت التشغيل، تكون القيمة استخدام البيانات المختلفة.
على سبيل المثال، عند إنشاء منتج لواجهة برمجة التطبيقات، يمكنك اختياريًا ضبط الحصة المسموح بها. والحد والوحدة الزمنية والفاصل. ومع ذلك، فإنّ ضبط هذه القيم في منتج واجهة برمجة التطبيقات لا فرض استخدامها في خادم وكيل لواجهة برمجة التطبيقات. عليك أيضًا إضافة سياسة حصة إلى خادم وكيل واجهة برمجة التطبيقات الذي تقرأ هذه القيم. راجع إنشاء واجهة برمجة تطبيقات المنتجات للمزيد.
في المثال أعلاه، يستخدم خادم وكيل واجهة برمجة التطبيقات الذي يحتوي على سياسة الحصة مفتاح VerifyAPIKey
باسم verify-api-key
، للتحقّق من صحة مفتاح واجهة برمجة التطبيقات الذي تم تمريره في الطلب. تشير رسالة الأشكال البيانية
يمكن لسياسة الحصة الوصول إلى متغيّرات التدفق من سياسة VerifyAPIKey لقراءة الحصة
المحددة في منتج واجهة برمجة التطبيقات. للمزيد من المعلومات حول متغيّرات مسار VerifyAPIKey، يمكنك الاطّلاع على مقالة التحقّق من سياسة مفتاح واجهة برمجة التطبيقات.
ويمكنك أيضًا ضبط سمات مخصّصة لكل مطوِّرين أو تطبيقات معيّنة، ثم قراءة تلك القيم في سياسة الحصة. على سبيل المثال، لنفترض أنك ترغب في تعيين قيم حصة مختلفة لكل مطور البرامج. في هذه الحالة، ستضبط سمات مخصّصة لمطوِّر البرامج التي تتضمّن هذا الحدّ، والوحدة الزمنية والفاصل. يمكنك بعد ذلك الرجوع إلى هذه القيم في سياسة الحصة كما هو موضح أدناه:
<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>
يستخدم هذا المثال أيضًا متغيّرات مسار VerifyAPIKey للإشارة إلى السمات المخصّصة الذي تم تعيينه على المطور.
يمكنك استخدام أي متغيّر لضبط مَعلمات سياسة الحصة. يمكن لهذه المتغيرات مصدرها:
- متغيّرات التدفق
- المواقع على منتج واجهة برمجة التطبيقات أو التطبيق أو المطوّر
- خريطة القيم الرئيسية (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
: التوقيت العالمي المنسّق (UTC) عند إعادة ضبط العدّاد
هناك العديد من متغيرات التدفق الأخرى التي يمكنك الوصول إليها، كما هو موضح أدناه.
على سبيل المثال، يمكنك استخدام سياسة 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 اتصال قبل نهاية الساعة، يتم رفض المكالمات التي تتجاوز 10000 اتصال.
على سبيل المثال، إذا بدأ العدّاد في 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>
على دقيقة أو ساعة أو يوم أو أسبوع أو شهر.
ويمكنك الرجوع إلى هذه السياسة في أماكن متعدّدة داخل الخادم الوكيل لواجهة برمجة التطبيقات. على سبيل المثال، يمكنك ضعه في Proxy PreFlow ليتم تنفيذه على كل طلب أو، يمكنك وضع في تدفقات متعددة في الخادم الوكيل لواجهة برمجة التطبيقات. إذا استخدمت هذه السياسة في عدة أماكن في الخادم الوكيل، يحتفظ بعدّاد واحد يتم تعديله من خلال جميع مثيلات السياسة.
ويمكنك بدلاً من ذلك تحديد سياسات حصة متعددة في الخادم الوكيل لواجهة برمجة التطبيقات. كل سياسة حصة
على عكس خاص بها استنادًا إلى سمة 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"/>
في حال استخدام سياسة VerifyAPIKey للتحقق من صحة مفتاح واجهة برمجة التطبيقات أو سياسات OAuthV2
برموز OAuth المميزة، يمكنك استخدام المعلومات في مفتاح واجهة برمجة التطبيقات أو الرمز المميز لتحديد
عدادات لسياسة الحصة نفسها. على سبيل المثال، ما يلي
تستخدم العلامة <Identifier>
متغيّر التدفق client_id
سياسة VerifyAPIKey المسماة 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 رسالة في الشهر، يبدأ تقييد المعدّل بعد الرسالة رقم 10000. ولا يهم ما إذا تم احتساب 10000 رسالة في أول اليوم أو اليوم الأخير من تلك الفترة لا يُسمح بأي مساحة لطلبات إضافية حتى يتم عرض عدّاد الحصة تتم إعادة ضبطه تلقائيًا في نهاية الفاصل الزمني المحدَّد أو إلى أن يتم تحديد الحصة إعادة الضبط باستخدام إعادة ضبط الحصة .
وهناك اختلاف في الحصة التي تسمى SpikeArrest يمنع حدوث تكدسات (أو انفجارات) في حركة المرور يمكن أن زيادة مفاجئة في الاستخدام أو برامج ضارة أو هجمات ضارة. لمزيد من المعلومات، معلومات حول SpikeArrest، يُرجى الاطّلاع على سياسة الاعتقال الزائد
تنطبق الحصص على الخوادم الوكيلة الفردية لواجهة برمجة التطبيقات ولا يتم توزيعها بين الخوادم الوكيلة لواجهة برمجة التطبيقات. على سبيل المثال: إذا كان لديك ثلاثة خوادم وكيلة لواجهة برمجة التطبيقات في منتج واجهة برمجة التطبيقات، لا تتم مشاركة حصة واحدة في الثلاثة خوادم حتى إذا استخدم الثلاثة إعداد سياسة الحصة نفسها.
أنواع سياسات الحصة
تتوافق سياسة الحصة مع عدة أنواع مختلفة من السياسات: السياسات التلقائية و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
المطلوبة ووضعها في تدفقات متعددة (التدفق A وB وC) في الخادم الوكيل لواجهة برمجة التطبيقات. وعلى الرغم من
في تدفقات متعددة، فإنه يحتفظ بعدّاد واحد يتم تحديثه بواسطة جميع مثيلات
السياسة:
- يتم تنفيذ التدفق A -> تم تنفيذ سياسة MyTrackingPolicy وعدّادها = 1
- يتم تنفيذ التدفق B -> تم تنفيذ سياسة MyTrackingPolicy وعدّادها = 2
- يتم تنفيذ التدفق A -> تم تنفيذ سياسة MyCategoryPolicy وعدّادها = 3
- يتم تنفيذ التدفق C -> تم تنفيذ سياسة MyTrackingPolicy وعدّادها = 4
- يتم تنفيذ التدفق A -> تم تنفيذ سياسة MyTrackingPolicy وعدّادها = 5
تم رفض الطلب التالي إلى أي من المسارات الثلاثة لأنّ عدّاد الحصة قد بلغ حدها.
وباستخدام سياسة الحصة نفسها في أكثر من مكان واحد في مسار الخادم الوكيل لواجهة برمجة التطبيقات، ما يمكن أن تتسبب عن غير قصد في نفاد الحصة بشكل أسرع مما تتوقع، عبارة عن نمط مضاد مذكور في The Book of 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> السمات
<Quota async="false" continueOnError="false" enabled="true" name="Quota-3" type="calendar">
السمات التالية خاصة بهذه السياسة.
السمة | الوصف | تلقائي | التواجد في المنزل |
---|---|---|---|
كتابة |
يتم استخدامها لتحديد متى وكيف يفحص عدّاد الحصة استخدام الحصّة. عرض لمزيد من المعلومات، يمكنك الاطّلاع على أنواع سياسات الحصة. إذا حذفت قيمة تشمل القيم الصالحة ما يلي:
|
تقويم | اختياري |
يصف الجدول التالي السمات المشتركة بين جميع العناصر الرئيسية للسياسة:
السمة | الوصف | تلقائي | التواجد في المنزل |
---|---|---|---|
name |
الاسم الداخلي للسياسة. يمكن لقيمة السمة يمكنك، إذا أردت، استخدام العنصر |
لا ينطبق | مطلوب |
continueOnError |
اضبط القيمة على يمكنك ضبط القيمة على |
خطأ | اختياري |
enabled |
اضبط القيمة على اضبط القيمة على |
صحيح | اختياري |
async |
تم إيقاف هذه السمة نهائيًا. |
خطأ | منهي العمل به |
<DisplayName> عنصر
استخدِمه مع السمة name
لتصنيف السياسة في
إدارة خادم وكيل لواجهة المستخدم باسم مختلف بلغة طبيعية.
<DisplayName>Policy Display Name</DisplayName>
تلقائي |
لا ينطبق إذا لم تستخدم هذا العنصر، سيتم ضبط قيمة السمة |
---|---|
التواجد في المنزل | اختياري |
النوع | سلسلة |
<Allow> عنصر
تحدِّد هذه السياسة الحدّ الأقصى لعدد الحصص. إذا بلغ عدّاد السياسة هذا الحدّ الأقصى قيمة، يتم رفض المكالمات اللاحقة إلى أن تتم إعادة ضبط العدّاد.
في ما يلي ثلاث طرق لضبط عنصر <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 | اختياري |
countRef |
يُستخدم لتحديد متغيّر تدفق يحتوي على عدد الرسائل للحصة.
تكون الأولوية للسمة |
لا ينطبق | اختياري |
<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>
الإعداد التلقائي: | خطأ |
الحضور: | اختياري |
النوع: | منطقي |
<Synchronous> عنصر
يمكنك ضبط القيمة على true
لتعديل عدّاد الحصة الموزعة بشكل متزامن. هذا النمط
تعني أن التعديل يتم على العدّاد في نفس الوقت الذي يتم فيه التحقق من الحصة في الطلب
بواجهة برمجة التطبيقات. يجب ضبط القيمة على true
إذا كان من الضروري عدم السماح بأي واجهة برمجة تطبيقات.
تجاوز الحصة.
اضبط القيمة على false
لتعديل عدّاد الحصة بشكل غير متزامن. يعني ذلك
من الممكن أن يتم تنفيذ بعض طلبات البيانات من واجهة برمجة التطبيقات التي تتجاوز الحصة المحددة، اعتمادًا على وقت
يتم تحديث عدّاد الحصة في المستودع المركزي بشكلٍ غير متزامن. ومع ذلك، لن تواجه
تأثيرات الأداء المحتملة المرتبطة بالتحديثات المتزامنة.
يبلغ الفاصل الزمني التلقائي للتحديث غير المتزامن 10 ثوانٍ. يمكنك استخدام
عنصر AsynchronousConfiguration
لإعداد هذا السلوك غير المتزامن.
<Synchronous>false</Synchronous>
الإعداد التلقائي: | خطأ |
الحضور: | اختياري |
النوع: | منطقي |
<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> عنصر
يمكنك استخدام العنصر <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.
الحصول عليها. ويمكنك أيضًا ضبط السمة MessageWeight
على 0 كي لا يتمّ تنفيذ الطلب
تؤثر على العدّاد. في هذا المثال، إذا كانت الحصة هي 10 رسائل في الدقيقة
قيمة MessageWeight
لطلبات POST هي 2
، فإن الحصة
5 طلبات POST في أي فاصل مدته 10 دقائق. أي طلب إضافي، POST أو GET،
قبل أن يتم رفض عمليات إعادة تعيين العدّاد.
يجب تحديد القيمة التي تمثّل MessageWeight
من خلال تدفق.
ويمكن استخراجها من عناوين HTTP أو معلَمات طلب البحث أو طلب XML أو JSON
أو حمولة البيانات أو أي متغير آخر للتدفق. على سبيل المثال، تقوم بتعيينه في عنوان يسمى
weight
:
<MessageWeight ref="message_weight"/>
الإعداد التلقائي: | لا ينطبق |
الحضور: | اختياري |
النوع: |
عدد صحيح |
متغيّرات التدفق
تتم تعبئة متغيّرات التدفق المحدَّدة مسبقًا التالية تلقائيًا عند تطبيق سياسة حصة وتنفيذه. لمزيد من المعلومات حول متغيّرات التدفق، اطّلِع على مرجع المتغيرات.
المتغيرات | النوع | الأذونات | الوصف |
---|---|---|---|
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}.expiry.time | الصيغة الطويلة | قراءة فقط |
عرض الوقت بالتوقيت العالمي المنسق (UTC) بالمللي ثانية والذي يحدد وقت انتهاء صلاحية الحصة الجديدة يبدأ فاصل الحصة. عندما يكون نوع سياسة الحصة هو |
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 لجميع
لفواصل الحصة. |
pricelimit.{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>