Anda sedang melihat dokumentasi Apigee dan Apigee Hybrid.
Lihat
dokumentasi Apigee Edge.
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 flow 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 tidak valid yang digunakan untuk elemen
<MessageWeight>
dalam kebijakan Kuota. Anda dapat menemukan informasi ini dalam elemenfaultstring
respons error. Misalnya, dalam error berikut, nilai yang tidak valid digunakan untuk elemen<MessageWeight>
adalah1.5
:"faultstring": "Invalid message weight value 1.5"
Periksa semua kebijakan Kuota di Proxy API tertentu yang mengalami kegagalan. Mungkin ada satu atau beberapa kebijakan Kuota tempat elemen
<MessageWeight>
ditentukan.Misalnya, kebijakan berikut menentukan
<MessageWeight>
melalui variabel flowmessage_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 flow dapat diekstrak dari header HTTP, parameter kueri, payload permintaan XML atau JSON, atau ditentukan dalam kebijakan lain:- Temukan kode dalam paket Proxy API tempat variabel ditentukan terlebih dahulu.
- Setelah Anda mengetahui kebijakan yang menentukan dan mengisi variabel terlebih dahulu, periksa cara nilai untuk variabel ditetapkan.
- Jika nilai variabel flow cocok dengan nilai yang diidentifikasi pada Langkah #1 di atas, maka 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 ini: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 yang tidak valid (bukan bilangan bulat).
Resolusi
Pastikan nilai yang mewakili MessageWeight
yang ditentukan oleh variabel flow adalah nilai yang valid (nilai bilangan bulat).
Untuk memperbaiki contoh yang ditampilkan di atas, Anda dapat mengubah nilai variabel message_weight
dalam 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 ditetapkan 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 dengan elemen wajib
<Interval>
tidak ditentukan, berarti itulah yang menyebabkan 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 waktunya bisa dalam menit, jam, hari, minggu, atau bulan.
Diagnosis
Periksa setiap kebijakan Kuota di Proxy API tempat kegagalan terjadi. Jika ada kebijakan Kuota dengan elemen wajib
<TimeUnit>
tidak ditentukan, berarti itulah yang menyebabkan 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>