Anda sedang melihat dokumentasi Apigee Edge.
Buka
dokumentasi Apigee X. info
InvalidMessageWeight
Kode error
policies.ratelimit.InvalidMessageWeight
Isi respons error
{
"fault": {
"faultstring": "Invalid message weight value [invalid_value]",
"detail": {
"errorcode": "policies.ratelimit.InvalidMessageWeight"
}
}
}
Contoh Pesan Error
{
"fault": {
"faultstring": "Invalid message weight value 1.5",
"detail": {
"errorcode": "policies.ratelimit.InvalidMessageWeight"
}
}
}
Penyebab
Error ini terjadi jika nilai elemen <MessageWeight>
yang ditentukan melalui variabel alur tidak valid (nilai non-bilangan bulat).
Misalnya, error ini akan terjadi jika nilai variabel flow yang ditentukan untuk elemen <MessageWeight>
adalah 1,5 (nilai non-bilangan bulat).
Diagnosis
Identifikasi nilai yang tidak valid yang digunakan untuk elemen
<MessageWeight>
dalam kebijakan Kuota. Anda dapat menemukan informasi ini di elemenfaultstring
respons error. Misalnya, dalam error berikut, nilai yang tidak valid yang digunakan untuk elemen<MessageWeight>
adalah1.5
:"faultstring": "Invalid message weight value 1.5"
Periksa semua kebijakan Kuota di Proxy API tertentu tempat kegagalan terjadi. Mungkin ada satu atau beberapa kebijakan Kuota yang menentukan elemen
<MessageWeight>
.Misalnya, kebijakan berikut menentukan
<MessageWeight>
melalui variabel alurmessage_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>
Tentukan nilai variabel yang digunakan untuk
<MessageWeight>
dalam Kebijakan Kuota yang diidentifikasi. Nilai variabel alur dapat diekstrak dari header HTTP, parameter kueri, payload permintaan XML atau JSON, atau ditentukan dalam kebijakan lain:- Cari kode dalam paket Proxy API tempat variabel ditentukan terlebih dahulu.
- Setelah Anda mengetahui kebijakan tempat variabel ditentukan dan diisi terlebih dahulu, periksa cara penetapan nilai untuk variabel tersebut.
- Jika nilai variabel flow cocok dengan nilai yang diidentifikasi pada Langkah #1 di atas, berarti itulah penyebab error.
Misalnya, asumsikan bahwa kebijakan JavaScript yang digunakan sebelum Kebijakan Kuota menetapkan variabel
message_weight
berdasarkan jenis permintaan seperti yang ditunjukkan di bawah:var verb = context.getVariable("request.verb"); context.setVariable("message_weight", "1.5"); if (verb == 'POST') { context.setVariable("message_weight", "2"); }
Perhatikan bahwa nilai variabel
message_weight
adalah1.5
yang merupakan nilai tidak valid (bukan bilangan bulat).
Resolusi
Pastikan nilai yang mewakili MessageWeight
yang ditentukan oleh variabel alur adalah nilai yang valid (nilai bilangan bulat).
Untuk memperbaiki contoh yang ditampilkan di atas, Anda dapat mengubah nilai variabel message_weight
di JavaScript menjadi bilangan bulat.
var verb = context.getVariable("request.verb");
context.setVariable("message_weight", "1");
if (verb == 'POST') {
context.setVariable("message_weight", "2");
}
FailedToResolveQuotaIntervalReference
Kode error
policies.ratelimit.FailedToResolveQuotaIntervalReference
Isi respons error
{
"fault": {
"faultstring": "Failed to resolve quota interval reference [reference] in quota policy {1}",
"detail": {
"errorcode": "policies.ratelimit.FailedToResolveQuotaIntervalReference"
}
}
}
Contoh Pesan Error
{
"fault": {
"faultstring": "Failed to resolve quota interval reference api.product.developer.quota.interval in quota policy {1}",
"detail": {
"errorcode": "policies.ratelimit.FailedToResolveQuotaIntervalReference"
}
}
}
Penyebab
Error ini terjadi jika elemen <Interval>
tidak ditentukan dalam kebijakan Kuota. Elemen ini bersifat wajib dan digunakan untuk menentukan interval waktu yang berlaku untuk kuota. Interval waktu dapat berupa menit, jam, hari, minggu, atau bulan seperti yang ditentukan dengan elemen <TimeUnit>
.
Diagnosis
Periksa setiap kebijakan Kuota di Proxy API tempat kegagalan terjadi. Jika ada kebijakan Kuota yang tidak menentukan elemen wajib
<Interval>
, hal tersebut adalah penyebab error.Misalnya, kebijakan Kuota berikut tidak memiliki elemen wajib
<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>
Karena elemen wajib
<TimeUnit>
tidak ditentukan dalam kebijakan Kuota di atas, Anda akan menerima kode error:policies.ratelimit.FailedToResolveQuotaIntervalReference
Resolusi
Pastikan semua kebijakan Kuota untuk proxy API tertentu memiliki elemen wajib <Interval>
yang ditentukan dengan benar.
Untuk memperbaiki contoh yang ditampilkan di atas, Anda dapat mengubah kebijakan untuk menyertakan elemen <Interval>
seperti yang ditunjukkan di bawah.
<?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
Kode error
policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference
Isi respons error
{
"fault": {
"faultstring": "Failed to resolve quota time unit reference [reference] in quota policy {1}",
"detail": {
"errorcode": "policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference"
}
}
}
Contoh Pesan Error
{
"fault": {
"faultstring": "Failed to resolve quota time unit reference apiproduct.developer.quota.timeunity in quota policy {1}",
"detail": {
"errorcode": "policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference"
}
}
}
Penyebab
Error ini terjadi jika elemen <TimeUnit>
tidak ditetapkan dalam kebijakan Kuota. Elemen ini bersifat wajib dan digunakan untuk menentukan satuan waktu yang berlaku untuk kuota. Interval waktu dapat dalam menit, jam, hari, minggu, atau bulan.
Diagnosis
Periksa setiap kebijakan Kuota di Proxy API tempat kegagalan terjadi. Jika ada kebijakan Kuota yang tidak menentukan elemen wajib
<TimeUnit>
, hal tersebut adalah penyebab error.Misalnya, kebijakan Kuota berikut tidak memiliki elemen wajib
<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>
Karena elemen wajib
<TimeUnit>
tidak ditentukan dalam kebijakan Kuota di atas, Anda akan menerima kode error:policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference
Resolusi
Pastikan semua kebijakan Kuota untuk proxy API tertentu memiliki elemen wajib <TimeUnit>
yang ditentukan.
Untuk memperbaiki contoh yang ditampilkan di atas, Anda dapat mengubah kebijakan untuk menyertakan elemen <TimeUnit>
seperti yang ditunjukkan di bawah.
<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>