คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
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"ตรวจสอบนโยบายโควตาทั้งหมดในพร็อกซี API เฉพาะที่เกิดข้อผิดพลาด อาจมีนโยบายโควต้าอย่างน้อย 1 รายการที่ระบุองค์ประกอบ
<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 หรือกำหนดไว้ในนโยบายอื่น ดังนี้- ค้นหาโค้ดภายในบันเดิลพร็อกซี API ที่กำหนดตัวแปรไว้เป็นที่แรก
- เมื่อทราบแล้วว่านโยบายใดกำหนดและป้อนข้อมูลตัวแปรเป็นที่แรก ให้ตรวจสอบวิธีตั้งค่าตัวแปร
- หากค่าของตัวแปรโฟลว์ตรงกับค่าที่ระบุไว้ในขั้นตอนที่ 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>
การวินิจฉัย
ตรวจสอบนโยบายโควต้าแต่ละรายการในพร็อกซี API ที่เกิดข้อผิดพลาด หากมีนโยบายโควต้าที่ไม่ได้กำหนดองค์ประกอบ
<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
ความละเอียด
ตรวจสอบว่านโยบายโควตาทั้งหมดสำหรับพร็อกซี API ที่กำหนดมีองค์ประกอบ <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> ภายในนโยบายโควต้า องค์ประกอบนี้เป็นองค์ประกอบที่ต้องระบุและใช้เพื่อระบุหน่วยเวลาที่ใช้ได้กับโควต้า ช่วงเวลาอาจเป็นนาที ชั่วโมง วัน สัปดาห์ หรือเดือน
การวินิจฉัย
ตรวจสอบนโยบายโควต้าแต่ละรายการในพร็อกซี API ที่เกิดข้อผิดพลาด หากมีนโยบายโควต้าที่ไม่ได้กำหนดองค์ประกอบ
<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
ความละเอียด
ตรวจสอบว่านโยบายโควตาทั้งหมดสำหรับพร็อกซี API ที่กำหนดมีองค์ประกอบ <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>