أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info
InvalidRLPolicy
رمز الخطأ
policies.resetquota.InvalidRLPolicy
نص رد الخطأ
{
"fault": {
"faultstring": "Invalid rate limit policy quota_policy_name",
"detail": {
"errorcode": "policies.resetquota.InvalidRLPolicy"
}
}
}مثال على رسالة الخطأ
{
"fault": {
"faultstring": "Invalid rate limit policy MyQuotaPolicy",
"detail": {
"errorcode": "policies.resetquota.InvalidRLPolicy"
}
}
}
السبب
يحدث هذا الخطأ إذا لم يتم تحديد سياسة الحصة المحددة في العنصر <Quota> من سياسة إعادة ضبط الحصة في خادم وكيل لواجهة برمجة التطبيقات. عنصر <Quota> إلزامي
ويحدّد سياسة الحصة المستهدَفة التي يجب تعديل عدّادها من خلال
سياسة إعادة ضبط الحصة. يجب إنشاء سياسة الحصة المستهدَفة وتحديدها ضمن خادم وكيل لواجهة برمجة التطبيقات نفسه، ويجب أن تكون متاحة أثناء عملية التنفيذ.
على سبيل المثال، لنفترض أنّ العنصر<Quota> معرَّف كما هو موضّح أدناه، ولكن إذا لم يتم تعريفMyQuotaPolicy في خادم وكيل واجهة برمجة التطبيقات، سيظهر لك الخطأ أعلاه.
<Quota name="MyQuotaPolicy">
التشخيص
تحديد اسم سياسة الحصة غير الصالح المحدّد في سياسة إعادة ضبط الحصة يمكنك العثور على اسم سياسة الحصة من faultstring. على سبيل المثال، في السلسلة faultstring التالية، يكون اسم سياسة الحصة هو
MyQuotaPolicy:"faultstring": "Invalid rate limit policy MyQuotaPolicy"افحص كل سياسات "إعادة ضبط الحصة" في خادم وكيل واجهة برمجة التطبيقات الذي حدث فيه الخطأ. حدِّد سياسة "إعادة ضبط الحصة" المحدّدة التي تتطابق فيها سياسة الحصة المحدّدة ضمن العنصر الإلزامي
<Quota>مع الاسم المحدّد في الخطوة 1 أعلاه.على سبيل المثال، تحدّد سياسة "إعادة ضبط الحصة" التالية سياسة حصة باسم
MyQuotaPolicy، تتطابق مع ما هو وارد في faultstring:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ResetQuota async="false" continueOnError="false" enabled="true" name="Reset_Quota_Demo"> <DisplayName>Reset_Quota_Demo</DisplayName> <Properties/> <Quota name="MyQuotaPolicy"> <Identifier name="identifierName" ref="request.header.identifier"> <Allow>100</Allow> </Identifier> </Quota> </ResetQuota>تحديد ما إذا كانت سياسة الحصة هذه قد تم إنشاؤها وتحديدها ضمن خادم وكيل لواجهة برمجة التطبيقات نفسه إذا لم تكن سياسة الحصة متوفرة في خادم وكيل واجهة برمجة التطبيقات نفسه، سيكون هذا هو سبب الخطأ.
في المثال الموضّح أعلاه، من المفترض أن تكون سياسة الحصة
MyQuotaPolicyمتوفّرة في التدفق قبل تنفيذ سياسة إعادة ضبط الحصةReset_Quota_Demo.بما أنّ سياسة الحصة
MyQuotaPolicyغير متوفّرة في المسار، ستتلقّى رمز الخطأ التالي:
"errorcode": "policies.resetquota.InvalidRLPolicy"
الدقة
تأكَّد من أنّ "سياسة الحصة" المحدّدة في العنصر <Quota> معرَّفة في خادم وكيل واجهة برمجة التطبيقات. يجب أن تكون سياسة الحصة المستهدَفة هذه متاحة عند تنفيذ سياسة إعادة ضبط الحصة.
FailedToResolveAllowCountRef
رمز الخطأ
policies.resetquota.FailedToResolveAllowCountRef
نص رد الخطأ
Failed to resolve allow count reference reference_name for identifier identifier_name in ResetQuotaStepDefinition:policy_name;API Proxy:proxy_name;Revision: revision_number;Environment:env_name;Organization:org_name
مثال على رسالة الخطأ
Failed to resolve allow count reference request.header.allowcount for identifier
identifierName in ResetQuotaStepDefinition:ResetQuota;API Proxy:Reset_Quota;
Revision:10;Environment:test;Organization:demo

سيكون الخطأ الذي يتم عرضه للعميل ببساطة: policies.ratelimit.QuotaViolation.
السبب
يحدث هذا الخطأ إذا تعذّر تحديد قيمة للمرجع الخاص بالمتغيّر الذي يحتوي على عدد مرات السماح في العنصر <Allow> من السياسة. هذا العنصر إلزامي ويحدّد مقدار خفض عدّاد الحصة.
التشخيص
حدِّد سياسة "إعادة ضبط الحصة" التي حدث فيها الخطأ واسم المتغيّر المرجعي الذي لا يمكن حله. يمكنك العثور على كلتا السمتَين في ردّ الخطأ.
على سبيل المثال، في faultstring التالية، يكون اسم السياسة
ResetQuotaوالمرجعrequest.header.allowcount:Failed to resolve allow count reference request.header.allowcount for identifier identifierName in ResetQuotaStepDefinition:ResetQuota;API Proxy:Reset_Quota; Revision:10;Environment:test;Organization:demoفي ملف XML الخاص بسياسة "إعادة ضبط الحصة" الذي تعذّر تنفيذه، تأكَّد من أنّ اسم المتغيّر المرجعي المستخدَم يتطابق مع الاسم المرجعي المحدّد في ردّ الخطأ (الخطوة 1 أعلاه).
على سبيل المثال، تحدّد السياسة التالية العنصر الذي يحمل المرجع المسمّى
request.header.allowcount، والذي يتطابق مع ما يظهر في الخطأ:<ResetQuota async="false" continueOnError="false" enabled="true" name="ResetQuota"> <DisplayName>ResetQuota</DisplayName> <Properties/> <Quota name="MyQuotaPolicy"> <Identifier name="identifierName"> <Allow ref="request.header.allowcount"/> </Identifier> </Quota> </ResetQuota>تحديد ما إذا كان المتغيّر المرجعي محدّدًا ومتاحًا في التدفق الذي يتم فيه تنفيذ سياسة "إعادة ضبط الحصة"
إذا كان المتغير إما:
- خارج النطاق (غير متوفّر في المسار المحدّد الذي يتم فيه تنفيذ السياسة)
- لا يمكن حلّها (لم يتم تحديدها)
عندئذٍ يكون هذا هو سبب الخطأ.
في المثال الموضّح أعلاه، من المفترض أن يتم استرداد قيمة العدد المسموح به في العنصر
<Allow>من عنوان الطلب المسمّى allowcount. ومع ذلك، يتعذّر على Edge الاستجابة للطلب request.header.allowcount. يحدث ذلك إذا لم يتم تمرير العنوان allowcount كجزء من طلب بيانات من واجهة برمجة التطبيقات.في ما يلي نموذج لطلب بيانات من واجهة برمجة التطبيقات لا يتضمّن العنوان allowcount كجزء من الطلب:
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json"بما أنّه لم يتم تمرير العنوان allowcount كجزء من الطلب، فإنّ المتغيّر request.header.allowcount المستخدَم في العنصر
<Allow>في سياسة إعادة ضبط الحصة أعلاه غير محدّد، وبالتالي لا يمكن حله. وبالتالي، ستتلقّى الردّ التالي الذي يشير إلى حدوث خطأ:Failed to resolve allow count reference request.header.allowcount for identifier identifierName in ResetQuotaStepDefinition:ResetQuota;API Proxy:Reset_Quota; Revision:10;Environment:test;Organization:demo
الدقة
تأكَّد من أنّ المتغيّر المُشار إليه في العنصر <Allow> متوفّر/محدّد
ومتاح في التدفق المحدّد الذي يتم فيه تنفيذ سياسة "إعادة ضبط الحصة".
لتصحيح المثال الموضّح أعلاه، يمكنك تعديل الطلب ليشمل العنوان allowcount كما هو موضّح أدناه:
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json" -H "allowcount:30"
FailedToResolveRLPolicy
رمز الخطأ
policies.resetquota.FailedToResolveRLPolicy
نص رد الخطأ
{
"fault": {
"faultstring": "Failed to resolve rate limit policy",
"detail": {
"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
}
}
}
مثال على رسالة الخطأ
{
"fault": {
"faultstring": "Failed to resolve rate limit policy",
"detail": {
"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
}
}
}
السبب
يحدث هذا الخطأ إذا تعذّر حل المتغيّر الذي تشير إليه السمة ref في العنصر <Quota>.
على سبيل المثال، إذا تم ضبط السمة ref على request.header.quotapolicy في العنصر <Quota> ولكنها غير متاحة في مسار خادم وكيل واجهة برمجة التطبيقات، سيظهر لك الخطأ أعلاه.
<Quota ref="request.header.quotapolicy">
التشخيص
افحص كل سياسات "إعادة ضبط الحصة" في خادم وكيل واجهة برمجة التطبيقات الذي حدث فيه الخطأ، وحدِّد سياسة "إعادة ضبط الحصة" التي لا يمكن فيها حل اسم متغير المرجع المحدّد في العنصر
<Quota>بشكل صحيح.تحديد ما إذا كان المتغير محدّدًا ومتاحًا في التدفق الذي يتم فيه تنفيذ سياسة "إعادة ضبط الحصة".
إذا كان المتغير إما:
- خارج النطاق (غير متوفّر في المسار المحدّد الذي يتم فيه تنفيذ السياسة)
- لا يمكن حلّها (لم يتم تحديدها)
عندئذٍ يكون هذا هو سبب الخطأ.
في المثال الموضّح أدناه، من المفترض أن يتم استرداد اسم سياسة الحصة المستهدَفة من عنوان الطلب المسمّى quotapolicy. ومع ذلك، يتعذّر على Edge الاستجابة للطلب request.header.quotapolicy. يحدث ذلك إذا لم يتم تمرير العنوان quotapolicy كجزء من طلب بيانات من واجهة برمجة التطبيقات.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ResetQuota async="false" continueOnError="false" enabled="true" name="Reset_Quota_Demo"> <DisplayName>Reset_Quota_Demo</DisplayName> <Properties/> <Quota ref="request.header.quotapolicy"> <Identifier name="identifierName" ref="request.header.identifier"> <Allow>100</Allow> </Identifier> </Quota> </ResetQuota>في ما يلي نموذج لطلب بيانات من واجهة برمجة التطبيقات لا يتضمّن العنوان quotapolicy كجزء من الطلب:
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json"بما أنّه لم يتم تمرير العنوان quotapolicy كجزء من الطلب، فإنّ المرجع request.header.quotapolicy المستخدَم في العنصر
<Quota>في سياسة Reset Quota أعلاه غير محدّد ولا يمكن حله. نتيجةً لذلك، ستتلقّى الردّ التالي الذي يشير إلى حدوث خطأ:"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
الدقة
تأكَّد من أنّ السمة ref المُشار إليها في العنصر <Quota> يتم حلّها في وقت التشغيل وأنّها متاحة في التدفق المحدّد الذي يتم فيه تنفيذ سياسة "إعادة ضبط الحصة".
لتصحيح المثال الموضّح أعلاه، يمكنك تعديل الطلب لتضمين العنوان quotapolicy كما هو موضّح أدناه:
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json" -H "quotapolicy:MyQuotaPolicy"