คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ
Apigee X info
InvalidRLPolicy
รหัสข้อผิดพลาด
policies.resetquota.InvalidRLPolicy
เนื้อหาการตอบกลับข้อผิดพลาด
{
"fault": {
"faultstring": "Invalid rate limit policy quota_policy_name",
"detail": {
"errorcode": "policies.resetquota.InvalidRLPolicy"
}
}
}ตัวอย่างข้อความแสดงข้อผิดพลาด
{
"fault": {
"faultstring": "Invalid rate limit policy MyQuotaPolicy",
"detail": {
"errorcode": "policies.resetquota.InvalidRLPolicy"
}
}
}
สาเหตุ
ข้อผิดพลาดนี้จะเกิดขึ้นหากไม่ได้กำหนดนโยบายโควต้าที่ระบุไว้ในองค์ประกอบ <Quota> ของ
นโยบายการรีเซ็ตโควต้าในพร็อกซี API องค์ประกอบ <Quota> เป็นองค์ประกอบที่จำเป็น
และระบุนโยบายโควต้าเป้าหมายที่ควรมีการอัปเดตตัวนับผ่าน
นโยบายรีเซ็ตโควต้า ต้องสร้างและกำหนดนโยบายโควต้าเป้าหมายนี้ภายใน
พร็อกซี API เดียวกัน และต้องพร้อมใช้งานในระหว่างโฟลว์
เช่น สมมติว่ามีการกำหนดองค์ประกอบ<Quota>ตามที่เห็นด้านล่าง แต่หากไม่ได้กำหนด
MyQuotaPolicyในพร็อกซี API คุณจะได้รับข้อผิดพลาดข้างต้น
<Quota name="MyQuotaPolicy">
การวินิจฉัย
ระบุชื่อนโยบายโควต้าที่ไม่ถูกต้องที่ระบุไว้ในนโยบายรีเซ็ตโควต้า คุณดูชื่อนโยบายโควต้าได้จากสตริงข้อผิดพลาด ตัวอย่างเช่น ใน ข้อความแสดงข้อผิดพลาดต่อไปนี้ ชื่อนโยบายโควต้าคือ
MyQuotaPolicy:"faultstring": "Invalid rate limit policy MyQuotaPolicy"ตรวจสอบนโยบายโควต้ารีเซ็ตแต่ละรายการในพร็อกซี API ที่เกิดข้อผิดพลาด ระบุนโยบายโควต้าการรีเซ็ตที่เฉพาะเจาะจงซึ่งนโยบายโควต้า ที่ระบุภายในองค์ประกอบที่บังคับ
<Quota>ตรงกับชื่อที่ระบุ ในขั้นตอนที่ 1 ด้านบนตัวอย่างเช่น นโยบายรีเซ็ตโควต้าต่อไปนี้ระบุนโยบายโควต้าชื่อ
MyQuotaPolicyซึ่งตรงกับสิ่งที่อยู่ในสตริงข้อผิดพลาด<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ResetQuota async="false" continueOnError="false" enabled="true" name="Reset_Quota_Demo"> <DisplayName>Reset_Quota_Demo</DisplayName> <Properties/> <Quota name="MyQuotaPolicy"> <Identifier name="identifierName" ref="request.header.identifier"> <Allow>100</Allow> </Identifier> </Quota> </ResetQuota>พิจารณาว่านโยบายโควต้านี้สร้างและกำหนดภายในพร็อกซี API เดียวกันหรือไม่ หากไม่มีนโยบายโควต้าภายในพร็อกซี API เดียวกัน นั่นคือสาเหตุ ของข้อผิดพลาด
ในตัวอย่างที่แสดงด้านบน นโยบายโควต้า
MyQuotaPolicyควรมีอยู่ในโฟลว์ก่อนที่นโยบายรีเซ็ตโควต้าReset_Quota_Demoจะทำงานเนื่องจากไม่มีนโยบายโควต้า
MyQuotaPolicyในโฟลว์ คุณจะได้รับรหัสข้อผิดพลาดต่อไปนี้
"errorcode": "policies.resetquota.InvalidRLPolicy"
ความละเอียด
ตรวจสอบว่าได้กำหนดนโยบายโควต้าที่ประกาศไว้ในองค์ประกอบ <Quota> ใน
พร็อกซี API นโยบายโควต้าเป้าหมายนี้ต้องพร้อมใช้งานเมื่อนโยบายโควต้ารีเซ็ต
ทำงาน
FailedToResolveAllowCountRef
รหัสข้อผิดพลาด
policies.resetquota.FailedToResolveAllowCountRef
เนื้อหาการตอบกลับข้อผิดพลาด
Failed to resolve allow count reference reference_name for identifier identifier_name in ResetQuotaStepDefinition:policy_name;API Proxy:proxy_name;Revision: revision_number;Environment:env_name;Organization:org_name
ตัวอย่างข้อความแสดงข้อผิดพลาด
Failed to resolve allow count reference request.header.allowcount for identifier
identifierName in ResetQuotaStepDefinition:ResetQuota;API Proxy:Reset_Quota;
Revision:10;Environment:test;Organization:demo

ข้อผิดพลาดที่ส่งกลับไปยังไคลเอ็นต์จะเป็นเพียง policies.ratelimit.QuotaViolation
สาเหตุ
ข้อผิดพลาดนี้จะเกิดขึ้นหากการอ้างอิงตัวแปรที่มีจำนวนที่อนุญาตในองค์ประกอบ <Allow> ของนโยบายไม่สามารถแก้ไขเป็นค่าได้
องค์ประกอบนี้เป็นองค์ประกอบที่จำเป็นและระบุจำนวนที่จะลดตัวนับโควต้า
การวินิจฉัย
ระบุนโยบายโควต้ารีเซ็ตที่เกิดข้อผิดพลาดและชื่อของ ตัวแปรอ้างอิงที่แก้ไขไม่ได้ คุณดูรายการทั้ง 2 รายการนี้ได้ ในการตอบกลับข้อผิดพลาด
ตัวอย่างเช่น ใน faultstring ต่อไปนี้ ชื่อนโยบายคือ
ResetQuotaและ การอ้างอิงคือrequest.header.allowcountFailed to resolve allow count reference request.header.allowcount for identifier identifierName in ResetQuotaStepDefinition:ResetQuota;API Proxy:Reset_Quota; Revision:10;Environment:test;Organization:demoใน XML ของนโยบายการรีเซ็ตโควต้าที่ไม่สำเร็จ ให้ตรวจสอบว่าชื่อของตัวแปรอ้างอิงที่ใช้ตรงกับชื่ออ้างอิงที่ระบุในการตอบกลับข้อผิดพลาด (ขั้นตอนที่ 1 ด้านบน)
ตัวอย่างเช่น นโยบายต่อไปนี้จะตั้งค่าองค์ประกอบที่มีการอ้างอิงชื่อ
request.header.allowcountซึ่งตรงกับสิ่งที่อยู่ในข้อผิดพลาด<ResetQuota async="false" continueOnError="false" enabled="true" name="ResetQuota"> <DisplayName>ResetQuota</DisplayName> <Properties/> <Quota name="MyQuotaPolicy"> <Identifier name="identifierName"> <Allow ref="request.header.allowcount"/> </Identifier> </Quota> </ResetQuota>พิจารณาว่าตัวแปรอ้างอิงได้รับการกำหนดและพร้อมใช้งานในโฟลว์ที่นโยบายรีเซ็ตโควต้าดำเนินการหรือไม่
หากตัวแปรเป็นอย่างใดอย่างหนึ่งต่อไปนี้
- อยู่นอกขอบเขต (ไม่พร้อมใช้งานในโฟลว์ที่เฉพาะเจาะจงซึ่งมีการบังคับใช้นโยบาย) หรือ
- ไม่สามารถแก้ไขได้ (ไม่ได้กำหนด)
นั่นคือสาเหตุของข้อผิดพลาด
ในตัวอย่างที่แสดงด้านบน ค่าของจำนวนที่อนุญาตในองค์ประกอบ
<Allow>ควรดึงมาจากส่วนหัวของคำขอที่ชื่อ allowcount อย่างไรก็ตาม Edge ไม่สามารถแก้ไข request.header.allowcount ได้ ซึ่งจะเกิดขึ้นหากไม่ได้ส่ง ส่วนหัว allowcount เป็นส่วนหนึ่งของคำขอ APIตัวอย่างคำขอ API ที่ไม่ได้ส่งส่วนหัว allowcount เป็นส่วนหนึ่งของคำขอมีดังนี้
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json"เนื่องจากไม่ได้ส่งส่วนหัว allowcount เป็นส่วนหนึ่งของคำขอ ตัวแปร request.header.allowcount ที่ใช้ในองค์ประกอบ
<Allow>ในนโยบายการรีเซ็ต โควต้าข้างต้นจึงไม่ได้รับการกำหนดและไม่สามารถแก้ไขได้ ดังนั้นคุณจะได้รับการตอบกลับข้อผิดพลาดต่อไปนี้Failed to resolve allow count reference request.header.allowcount for identifier identifierName in ResetQuotaStepDefinition:ResetQuota;API Proxy:Reset_Quota; Revision:10;Environment:test;Organization:demo
ความละเอียด
ตรวจสอบว่าตัวแปรที่อ้างอิงในองค์ประกอบ <Allow> มีอยู่/ได้รับการกำหนด
และพร้อมใช้งานในโฟลว์ที่เฉพาะเจาะจง ซึ่งนโยบายการรีเซ็ตโควต้าจะดำเนินการ
หากต้องการแก้ไขตัวอย่างที่แสดงด้านบน คุณสามารถแก้ไขคำขอให้มีส่วนหัว allowcount ดังที่แสดงด้านล่าง
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json" -H "allowcount:30"
FailedToResolveRLPolicy
รหัสข้อผิดพลาด
policies.resetquota.FailedToResolveRLPolicy
เนื้อหาการตอบกลับข้อผิดพลาด
{
"fault": {
"faultstring": "Failed to resolve rate limit policy",
"detail": {
"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
}
}
}
ตัวอย่างข้อความแสดงข้อผิดพลาด
{
"fault": {
"faultstring": "Failed to resolve rate limit policy",
"detail": {
"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
}
}
}
สาเหตุ
ข้อผิดพลาดนี้เกิดขึ้นหากไม่สามารถแก้ไขตัวแปรที่แอตทริบิวต์ ref อ้างอิงในองค์ประกอบ
<Quota> ได้
ตัวอย่างเช่น หากตั้งค่าแอตทริบิวต์ ref เป็น request.header.quotapolicy ในองค์ประกอบ
<Quota> แต่ไม่พร้อมใช้งานในโฟลว์พร็อกซี API คุณจะได้รับข้อผิดพลาด
ข้างต้น
<Quota ref="request.header.quotapolicy">
การวินิจฉัย
ตรวจสอบนโยบายโควต้ารีเซ็ตแต่ละรายการในพร็อกซี API ที่เกิดข้อผิดพลาด และระบุนโยบายโควต้ารีเซ็ตที่ชื่อของตัวแปรอ้างอิง ที่ระบุในองค์ประกอบ
<Quota>ไม่สามารถแก้ไขได้อย่างถูกต้องพิจารณาว่ามีการกำหนดตัวแปรและพร้อมใช้งานในโฟลว์ที่นโยบาย รีเซ็ตโควต้าดำเนินการหรือไม่
หากตัวแปรเป็นอย่างใดอย่างหนึ่งต่อไปนี้
- อยู่นอกขอบเขต (ไม่พร้อมใช้งานในโฟลว์ที่เฉพาะเจาะจงซึ่งนโยบายดำเนินการ) หรือ
- ไม่สามารถแก้ไขได้ (ไม่ได้กำหนด)
นั่นคือสาเหตุของข้อผิดพลาด
ในตัวอย่างที่แสดงด้านล่าง ระบบควรดึงชื่อนโยบายโควต้าเป้าหมายจากส่วนหัวของคำขอที่ชื่อ quotapolicy อย่างไรก็ตาม Edge ไม่สามารถ แก้ไข request.header.quotapolicy ได้ กรณีนี้จะเกิดขึ้นหากไม่ได้ส่งส่วนหัว quotapolicy เป็นส่วนหนึ่งของคำขอ API
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ResetQuota async="false" continueOnError="false" enabled="true" name="Reset_Quota_Demo"> <DisplayName>Reset_Quota_Demo</DisplayName> <Properties/> <Quota ref="request.header.quotapolicy"> <Identifier name="identifierName" ref="request.header.identifier"> <Allow>100</Allow> </Identifier> </Quota> </ResetQuota>ต่อไปนี้คือตัวอย่างคำขอ API ที่ไม่ได้ส่งส่วนหัว quotapolicy เป็นส่วนหนึ่งของคำขอ
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json"เนื่องจากไม่ได้ส่งส่วนหัว quotapolicy เป็นส่วนหนึ่งของคำขอ การอ้างอิง request.header.quotapolicy ที่ใช้ในองค์ประกอบ
<Quota>ในนโยบายโควต้ารีเซ็ตด้านบนจึงไม่ได้รับการกำหนดและไม่สามารถแก้ไขได้ ด้วยเหตุนี้ คุณจึงได้รับ การตอบกลับข้อผิดพลาดต่อไปนี้"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
ความละเอียด
ตรวจสอบว่าแอตทริบิวต์ ref ที่อ้างอิงในองค์ประกอบ <Quota> จะได้รับการแก้ไขที่
รันไทม์และพร้อมใช้งานในโฟลว์ที่เฉพาะเจาะจง ซึ่งนโยบายการรีเซ็ตโควต้าจะดำเนินการ
หากต้องการแก้ไขตัวอย่างที่แสดงด้านบน คุณสามารถแก้ไขคำขอให้รวมส่วนหัว quotapolicy ดังที่แสดงด้านล่าง
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json" -H "quotapolicy:MyQuotaPolicy"