Wyświetlasz dokumentację Apigee Edge.
Przejdź do
dokumentacji Apigee X. info
InvalidMessageWeight
Kod błędu
policies.ratelimit.InvalidMessageWeight
Treść odpowiedzi na błąd
{
"fault": {
"faultstring": "Invalid message weight value [invalid_value]",
"detail": {
"errorcode": "policies.ratelimit.InvalidMessageWeight"
}
}
}
Przykładowy komunikat o błędzie
{
"fault": {
"faultstring": "Invalid message weight value 1.5",
"detail": {
"errorcode": "policies.ratelimit.InvalidMessageWeight"
}
}
}
Przyczyna
Ten błąd występuje, jeśli wartość elementu <MessageWeight> określona za pomocą zmiennej przepływu jest nieprawidłowa (nie jest liczbą całkowitą).
Ten błąd wystąpi na przykład, jeśli wartość zmiennej przepływu określonej dla elementu <MessageWeight> wynosi 1,5 (nie jest liczbą całkowitą).
Diagnostyka
Odszukaj nieprawidłową wartość używaną w przypadku elementu
<MessageWeight>w zasadach dotyczących limitu. Te informacje znajdziesz w elemenciefaultstringodpowiedzi na błąd. Na przykład w tym błędzie nieprawidłowa wartość używana w przypadku elementu<MessageWeight>to1.5:"faultstring": "Invalid message weight value 1.5"Sprawdź wszystkie zasady dotyczące limitu w konkretnym serwerze proxy interfejsu API, w którym wystąpił błąd. Może istnieć co najmniej 1 zasada dotycząca limitu, w której określony jest element
<MessageWeight>.Na przykład ta zasada określa element
<MessageWeight>za pomocą zmiennej przepływumessage_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>Określ wartość zmiennej używanej w przypadku elementu
<MessageWeight>w zidentyfikowanych zasadach dotyczących limitu. Wartość zmiennej przepływu można wyodrębnić z nagłówków HTTP, parametrów zapytania, ładunku żądania XML lub JSON albo zdefiniować w innej zasadzie:- Znajdź w pakiecie serwera proxy interfejsu API kod, w którym zmienna została zdefiniowana po raz pierwszy.
- Gdy ustalisz, w której zasadzie zmienna jest zdefiniowana i wypełniana po raz pierwszy, sprawdź, jak ustawiana jest jej wartość.
- Jeśli wartość zmiennej przepływu jest zgodna z wartością zidentyfikowaną w kroku 1 powyżej, to jest to przyczyna błędu.
Załóżmy na przykład, że zasada JavaScript używana przed zasadami dotyczącymi limitu ustawia zmienną
message_weightna podstawie typu żądania, jak pokazano poniżej:var verb = context.getVariable("request.verb"); context.setVariable("message_weight", "1.5"); if (verb == 'POST') { context.setVariable("message_weight", "2"); }Zauważ, że wartość zmiennej
message_weightto1.5, która jest nieprawidłowa (nie jest liczbą całkowitą).
Rozwiązanie
Upewnij się, że wartość reprezentująca MessageWeight określoną przez zmienną przepływu jest prawidłowa (jest liczbą całkowitą).
Aby poprawić przykład pokazany powyżej, możesz zmienić wartość zmiennej message_weight w JavaScript na liczbę całkowitą.
var verb = context.getVariable("request.verb");
context.setVariable("message_weight", "1");
if (verb == 'POST') {
context.setVariable("message_weight", "2");
}
FailedToResolveQuotaIntervalReference
Kod błędu
policies.ratelimit.FailedToResolveQuotaIntervalReference
Treść odpowiedzi na błąd
{
"fault": {
"faultstring": "Failed to resolve quota interval reference [reference] in quota policy {1}",
"detail": {
"errorcode": "policies.ratelimit.FailedToResolveQuotaIntervalReference"
}
}
}
Przykładowy komunikat o błędzie
{
"fault": {
"faultstring": "Failed to resolve quota interval reference api.product.developer.quota.interval in quota policy {1}",
"detail": {
"errorcode": "policies.ratelimit.FailedToResolveQuotaIntervalReference"
}
}
}
Przyczyna
Ten błąd występuje, jeśli element <Interval> nie jest zdefiniowany w zasadach dotyczących limitu. Ten element jest wymagany i służy do określania przedziału czasu, w którym obowiązuje limit. Przedział czasu może być podany w minutach, godzinach, dniach, tygodniach lub miesiącach, zgodnie z definicją w elemencie <TimeUnit>.
Diagnostyka
Sprawdź wszystkie zasady dotyczące limitu w serwerze proxy interfejsu API, w którym wystąpił błąd. Jeśli istnieje zasada dotycząca limitu, w której nie jest zdefiniowany wymagany element
<Interval>, to jest to przyczyna błędu.Na przykład te zasady dotyczące limitu nie zawierają wymaganego elementu
<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>Ponieważ w powyższych zasadach dotyczących limitu nie jest zdefiniowany wymagany element
<TimeUnit>, otrzymasz kod błędu:policies.ratelimit.FailedToResolveQuotaIntervalReference
Rozwiązanie
Upewnij się, że wszystkie zasady dotyczące limitu w danym serwerze proxy interfejsu API mają prawidłowo zdefiniowany wymagany element <Interval>.
Aby poprawić przykład pokazany powyżej, możesz zmodyfikować zasady, aby zawierały element <Interval>, jak pokazano poniżej.
<?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
Kod błędu
policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference
Treść odpowiedzi na błąd
{
"fault": {
"faultstring": "Failed to resolve quota time unit reference [reference] in quota policy {1}",
"detail": {
"errorcode": "policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference"
}
}
}
Przykładowy komunikat o błędzie
{
"fault": {
"faultstring": "Failed to resolve quota time unit reference apiproduct.developer.quota.timeunity in quota policy {1}",
"detail": {
"errorcode": "policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference"
}
}
}
Przyczyna
Ten błąd występuje, jeśli element <TimeUnit> nie jest zdefiniowany w zasadach dotyczących limitu. Ten element jest wymagany i służy do określania jednostki czasu, w której obowiązuje limit. Przedział czasu może być podany w minutach, godzinach, dniach, tygodniach lub miesiącach.
Diagnostyka
Sprawdź wszystkie zasady dotyczące limitu w serwerze proxy interfejsu API, w którym wystąpił błąd. Jeśli istnieje zasada dotycząca limitu, w której nie jest zdefiniowany wymagany element
<TimeUnit>, to jest to przyczyna błędu.Na przykład te zasady dotyczące limitu nie zawierają wymaganego elementu
<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>Ponieważ w powyższych zasadach dotyczących limitu nie jest zdefiniowany wymagany element
<TimeUnit>, otrzymasz kod błędu:policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference
Rozwiązanie
Upewnij się, że wszystkie zasady dotyczące limitu w danym serwerze proxy interfejsu API mają zdefiniowany wymagany element <TimeUnit>.
Aby poprawić przykład pokazany powyżej, możesz zmodyfikować zasady, aby zawierały element <TimeUnit>, jak pokazano poniżej.
<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>