يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات
Apigee X. المعلومات
InvalidMessageWeight
رمز الخطأ
policies.ratelimit.InvalidMessageWeight
نص استجابة الخطأ
{
"fault": {
"faultstring": "Invalid message weight value [invalid_value]",
"detail": {
"errorcode": "policies.ratelimit.InvalidMessageWeight"
}
}
}
مثال على رسالة الخطأ
{
"fault": {
"faultstring": "Invalid message weight value 1.5",
"detail": {
"errorcode": "policies.ratelimit.InvalidMessageWeight"
}
}
}
السبب
يحدث هذا الخطأ إذا كانت قيمة العنصر <MessageWeight>
المحددة من خلال متغيّر التدفق غير صالحة (قيمة لا تمثّل عددًا صحيحًا).
على سبيل المثال، يحدث هذا الخطأ إذا كانت قيمة متغيّر التدفق المحدّدة للعنصر <MessageWeight>
هي 1.5 (قيمة لا تمثّل عددًا صحيحًا).
التشخيص
حدِّد القيمة غير الصالحة المستخدَمة للعنصر
<MessageWeight>
في سياسة الحصة. يمكنك العثور على هذه المعلومات في العنصرfaultstring
ضمن استجابة الخطأ. في الخطأ التالي مثلاً، القيمة غير الصالحة المستخدَمة للعنصر<MessageWeight>
هي1.5
:"faultstring": "Invalid message weight value 1.5"
افحص جميع سياسات الحصص في الخادم الوكيل لواجهة برمجة التطبيقات المحدَّد الذي حدث فيه الخطأ. يمكن أن تكون هناك سياسة حصة واحدة أو أكثر يتم تحديد العنصر
<MessageWeight>
فيها.على سبيل المثال، تحدِّد السياسة التالية
<MessageWeight>
من خلال متغيّر تدفقmessage_weight
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Quota async="false" continueOnError="false" enabled="true" name="Quota_with_weight" type="calendar"> <DisplayName>Quota_with_weight</DisplayName> <Properties/> <Allow count="3"/> <Interval>1</Interval> <TimeUnit>minute</TimeUnit> <StartTime>2017-7-16 12:00:00</StartTime> <MessageWeight ref="message_weight"/> </Quota>
تحديد قيمة المتغيّر المستخدَم في
<MessageWeight>
في سياسات الحصص المحدّدة. يمكن استخراج قيمة متغيّر التدفق من عناوين HTTP أو مَعلمات طلب البحث أو حمولة طلبات XML أو JSON أو تحديدها في سياسة أخرى:- حدِّد مكان الرمز ضمن حزمة الخادم الوكيل لواجهة برمجة التطبيقات التي تم تحديد المتغيّر فيها أولاً.
- بعد تحديد السياسة التي يتم تحديد المتغيّر فيها وتعبئتها أولاً، عليك التحقّق من كيفية ضبط قيمة المتغيّر.
- إذا كانت قيمة متغير التدفق تطابق القيمة المحددة في الخطوة رقم 1 أعلاه، فإن هذا هو سبب الخطأ.
على سبيل المثال، لنفترض أنّ سياسة JavaScript التي تم استخدامها قبل سياسة الحصص تضبط المتغيّر
message_weight
بناءً على نوع الطلب كما هو موضّح أدناه:var verb = context.getVariable("request.verb"); context.setVariable("message_weight", "1.5"); if (verb == 'POST') { context.setVariable("message_weight", "2"); }
لاحِظ أنّ قيمة المتغيّر
message_weight
هي1.5
، وهي قيمة غير صالحة (ليست عددًا صحيحًا).
درجة الدقّة
تأكد من أن القيمة التي تمثل MessageWeight
المحددة في متغير التدفق هي قيمة صالحة (قيمة عدد صحيح).
لتصحيح المثال الموضّح أعلاه، يمكنك تعديل قيمة المتغيّر message_weight
في JavaScript لتصبح عددًا صحيحًا.
var verb = context.getVariable("request.verb");
context.setVariable("message_weight", "1");
if (verb == 'POST') {
context.setVariable("message_weight", "2");
}
FailedToResolveQuotaIntervalReference
رمز الخطأ
policies.ratelimit.FailedToResolveQuotaIntervalReference
نص استجابة الخطأ
{
"fault": {
"faultstring": "Failed to resolve quota interval reference [reference] in quota policy {1}",
"detail": {
"errorcode": "policies.ratelimit.FailedToResolveQuotaIntervalReference"
}
}
}
مثال على رسالة الخطأ
{
"fault": {
"faultstring": "Failed to resolve quota interval reference api.product.developer.quota.interval in quota policy {1}",
"detail": {
"errorcode": "policies.ratelimit.FailedToResolveQuotaIntervalReference"
}
}
}
السبب
يحدث هذا الخطأ إذا لم يتم تحديد عنصر <Interval>
في سياسة الحصة. هذا العنصر إلزامي ويتم استخدامه لتحديد الفترة الزمنية التي تسري على الحصة. يمكن أن يكون الفاصل الزمني دقائق أو ساعات أو أيامًا أو أسابيع أو شهورًا، كما هو محدّد باستخدام العنصر <TimeUnit>
.
التشخيص
افحص كل سياسة من سياسات "الحصص" في الخادم الوكيل لواجهة برمجة التطبيقات التي حدث فيها الخطأ. إذا كانت هناك أي سياسة حصة بدون تحديد العنصر الإلزامي
<Interval>
، يكون هذا هو سبب الخطأ.على سبيل المثال، لا تتضمن سياسة الحصة التالية العنصر الإلزامي
<Interval>
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Quota async="false" continueOnError="false" enabled="true" name="CheckQuota" type="calendar"> <DisplayName>CheckQuota</DisplayName> <Properties/> <Allow count="3"/> <TimeUnit ref="verifyapikey.verify-api-key.apiproduct.developer.quota.timeunit">hour</TimeUnit> <StartTime>2017-7-16 12:00:00</StartTime> </Quota>
لأنّ العنصر الإلزامي
<TimeUnit>
غير معرَّف في سياسة الحصة أعلاه، ستتلقّى رمز الخطأ:policies.ratelimit.FailedToResolveQuotaIntervalReference
درجة الدقّة
تأكَّد من أنّ جميع سياسات "الحصة" لخادم وكيل معيّن لواجهة برمجة التطبيقات تتضمّن العنصر الإلزامي <Interval>
الذي تم تحديده بشكل صحيح.
لتصحيح المثال الموضَّح أعلاه، يمكنك تعديل السياسة لتشمل العنصر <Interval>
كما هو موضّح أدناه.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Quota async="false" continueOnError="false" enabled="true" name="CheckQuota" type="calendar"> <DisplayName>CheckQuota</DisplayName> <Properties/> <Allow count="3"/> <TimeUnit ref="verifyapikey.verify-api-key.apiproduct.developer.quota.timeunit">hour</TimeUnit> <Interval ref="verifyapikey.verify-api-key.apiproduct.developer.quota.interval">1</Interval> <StartTime>2017-7-16 12:00:00</StartTime> </Quota>
FailedToResolveQuotaIntervalTimeUnitReference
رمز الخطأ
policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference
نص استجابة الخطأ
{
"fault": {
"faultstring": "Failed to resolve quota time unit reference [reference] in quota policy {1}",
"detail": {
"errorcode": "policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference"
}
}
}
مثال على رسالة الخطأ
{
"fault": {
"faultstring": "Failed to resolve quota time unit reference apiproduct.developer.quota.timeunity in quota policy {1}",
"detail": {
"errorcode": "policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference"
}
}
}
السبب
يحدث هذا الخطأ إذا لم يتم تحديد عنصر <TimeUnit>
في سياسة الحصة. هذا العنصر إلزامي ويُستخدم لتحديد الوحدة الزمنية السارية على الحصة. يمكن أن يكون الفاصل الزمني بالدقائق أو الساعات أو الأيام أو الأسابيع أو الأشهر.
التشخيص
افحص كل سياسة من سياسات "الحصص" في الخادم الوكيل لواجهة برمجة التطبيقات التي حدث فيها الخطأ. إذا كانت هناك أي سياسة حصة بدون تحديد العنصر الإلزامي
<TimeUnit>
، يكون هذا هو سبب الخطأ.على سبيل المثال، لا تتضمن سياسة الحصة التالية العنصر الإلزامي
<TimeUnit>
:<Quota async="false" continueOnError="false" enabled="true" name="CheckQuota" type="calendar"> <DisplayName>CheckQuota</DisplayName> <Properties/> <Allow count="3"/> <Interval ref="verifyapikey.verify-api-key.apiproduct.developer.quota.interval">1</Interval> <StartTime>2017-7-16 12:00:00</StartTime> </Quota>
لأنّ العنصر الإلزامي
<TimeUnit>
غير معرَّف في سياسة الحصة أعلاه، ستتلقّى رمز الخطأ:policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference
درجة الدقّة
تأكَّد من أنّ جميع سياسات "الحصة" لخادم وكيل محدَّد لواجهة برمجة التطبيقات تتضمّن العنصر الإلزامي <TimeUnit>
المحدَّد.
لتصحيح المثال الموضَّح أعلاه، يمكنك تعديل السياسة لتشمل العنصر <TimeUnit>
كما هو موضّح أدناه.
<Quota async="false" continueOnError="false" enabled="true" name="CheckQuota" type="calendar"> <DisplayName>CheckQuota</DisplayName> <Properties/> <Allow count="3"/> <TimeUnit ref="verifyapikey.verify-api-key.apiproduct.developer.quota.timeunit">hour</TimeUnit> <Interval ref="verifyapikey.verify-api-key.apiproduct.developer.quota.interval">1</Interval> <StartTime>2017-7-16 12:00:00</StartTime> </Quota>