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 alur tidak valid (nilai non-bilangan bulat).
Misalnya, error ini akan terjadi jika nilai variabel alur 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 di elemenfaultstringdari respons error. Misalnya, pada error berikut, nilai 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 nilai variabel ditetapkan.
- Jika nilai variabel alur cocok dengan nilai yang diidentifikasi di Langkah #1 di atas, maka itulah penyebab errornya.
Misalnya, asumsikan bahwa kebijakan JavaScript yang digunakan sebelum Kebijakan Kuota menetapkan variabel
message_weightberdasarkan 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_weightadalah1.5yang merupakan nilai tidak valid (bukan bilangan bulat).
Resolusi
Pastikan nilai yang merepresentasikan MessageWeight yang ditentukan oleh variabel alur adalah nilai yang valid (nilai bilangan bulat).
Untuk memperbaiki contoh yang ditunjukkan 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 wajib ada dan digunakan untuk menentukan interval waktu yang berlaku untuk kuota. Interval waktu dapat berupa menit, jam, hari, minggu, atau bulan sebagaimana ditentukan dengan elemen <TimeUnit>.
Diagnosis
Periksa setiap kebijakan Kuota di Proxy API tempat terjadinya kegagalan. Jika ada kebijakan Kuota yang tidak menentukan elemen wajib
<Interval>, maka itulah penyebab errornya.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 telah menentukan elemen wajib <Interval> dengan benar.
Untuk memperbaiki contoh yang ditunjukkan 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 ditentukan dalam kebijakan Kuota. Elemen ini wajib ada dan digunakan untuk menentukan unit waktu yang berlaku untuk kuota. Interval waktu dapat berupa menit, jam, hari, minggu, atau bulan.
Diagnosis
Periksa setiap kebijakan Kuota di Proxy API tempat terjadinya kegagalan. Jika ada kebijakan Kuota yang tidak menentukan elemen wajib
<TimeUnit>, maka itulah penyebab errornya.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 telah menentukan elemen wajib <TimeUnit>.
Untuk memperbaiki contoh yang ditunjukkan 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>