أنت تعرض مستندات Apigee Edge.
انتقل إلى
مستندات Apigee X. معلومات
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">
التشخيص
حدِّد اسم سياسة الحصة غير الصالح المحدَّد في سياسة إعادة ضبط حصة. يمكنك العثور على اسم سياسة الحصة من سلسلة الأخطاء. على سبيل المثال، في سلسلة الخطأ التالية، اسم سياسة الحصة هو
MyQuotaPolicy:
"faultstring": "Invalid rate limit policy MyQuotaPolicy"
افحص كل سياسة من سياسات حصة إعادة الضبط في الخادم الوكيل لواجهة برمجة التطبيقات حيث يتعذّر حدث. تحديد سياسة إعادة ضبط حصة إعادة الضبط، حيث يتم تطبيق سياسة الحصة المحدد في العنصر الإلزامي
<Quota>
يطابق الاسم المحدد في الخطوة 1 أعلاه.على سبيل المثال، تحدّد سياسة حصة إعادة ضبط الحصة التالية سياسة حصة باسم
MyQuotaPolicy
، الذي يتطابق مع محتوى سلسلة الخطأ:<?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>
من السياسة إلى قيمة. هذا النمط
إلزاميًا ويحدد مقدار تقليل عداد الحصة.
التشخيص
حدِّد سياسة إعادة ضبط حصة التخزين التي حدث فيها الخطأ واسم هو المتغير المرجعي الذي لا يمكن حله. يمكنك العثور على هذين العنصرَين في استجابة الخطأ.
على سبيل المثال، في سلسلة الأخطاء التالية، اسم السياسة هو
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>
ولكنها غير متاحة في عملية التوسّط لـ API، ستظهر لك
الخطأ أعلاه.
<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>
المذكور أعلاه سياسة الحصة غير محددة ولا يمكن حلها. ونتيجةً لذلك، تتلقّى ردّ الخطأ:"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"