আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
অবৈধ আরএলপলিসি
ত্রুটি কোড
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> এলিমেন্টে নির্দিষ্ট করা কোটা পলিসিটি এপিআই প্রক্সিতে সংজ্ঞায়িত না থাকে। <Quota> এলিমেন্টটি বাধ্যতামূলক এবং এটি সেই টার্গেট কোটা পলিসিকে চিহ্নিত করে, যার কাউন্টারটি রিসেট কোটা পলিসির মাধ্যমে আপডেট করা উচিত। এই টার্গেট কোটা পলিসিটি অবশ্যই একই এপিআই প্রক্সির মধ্যে তৈরি ও সংজ্ঞায়িত থাকতে হবে এবং ফ্লো চলাকালীন উপলব্ধ থাকতে হবে।
উদাহরণস্বরূপ, ধরা যাক <Quota> এলিমেন্টটি নিচে দেখানো অনুযায়ী সংজ্ঞায়িত করা আছে, কিন্তু যদি API Proxy-তে MyQuotaPolicy সংজ্ঞায়িত না থাকে, তাহলে আপনি উপরের ত্রুটিটি পাবেন।
<Quota name="MyQuotaPolicy">
রোগ নির্ণয়
রিসেট কোটা পলিসিতে উল্লেখিত অবৈধ কোটা পলিসির নামটি শনাক্ত করুন। আপনি ফল্টস্ট্রিং (faultstring) থেকে কোটা পলিসির নামটি খুঁজে নিতে পারেন। উদাহরণস্বরূপ, নিম্নলিখিত ফল্টস্ট্রিং-এ, কোটা পলিসির নাম হলো
MyQuotaPolicy:"faultstring": "Invalid rate limit policy MyQuotaPolicy"যে এপিআই প্রক্সিতে ব্যর্থতা ঘটেছে, সেখানকার প্রতিটি রিসেট কোটা পলিসি পরীক্ষা করুন। সেই নির্দিষ্ট রিসেট কোটা পলিসিটি শনাক্ত করুন, যেখানে বাধ্যতামূলক
<Quota>এলিমেন্টের মধ্যে উল্লেখিত কোটা পলিসির নামটি উপরের ধাপ ১-এ শনাক্ত করা নামের সাথে মিলে যায়।উদাহরণস্বরূপ, নিম্নলিখিত রিসেট কোটা পলিসিটি
MyQuotaPolicyনামের একটি কোটা পলিসি নির্দিষ্ট করে, যা faultstring-এ যা আছে তার সাথে মিলে যায়:<?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>এই কোটা পলিসিটি একই এপিআই প্রক্সির মধ্যে তৈরি এবং সংজ্ঞায়িত করা হয়েছে কিনা তা নির্ধারণ করুন। যদি কোটা পলিসিটি একই এপিআই প্রক্সির মধ্যে বিদ্যমান না থাকে, তাহলে সেটাই ত্রুটির কারণ।
উপরে দেখানো উদাহরণে,
Reset_Quota_Demoনামক রিসেট কোটা পলিসিটি কার্যকর হওয়ার আগেMyQuotaPolicyনামক কোটা পলিসিটি ফ্লো-তে বিদ্যমান থাকার কথা।যেহেতু ফ্লো-তে
MyQuotaPolicyকোটা পলিসিটি বিদ্যমান নেই, তাই আপনি এই এরর কোডটি পাবেন:
"errorcode": "policies.resetquota.InvalidRLPolicy"
সমাধান
নিশ্চিত করুন যে <Quota> এলিমেন্টে ঘোষিত কোটা পলিসিটি এপিআই প্রক্সিতে সংজ্ঞায়িত আছে। রিসেট কোটা পলিসি কার্যকর হওয়ার সময় এই টার্গেট কোটা পলিসিটি অবশ্যই উপলব্ধ থাকতে হবে।
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> এলিমেন্টে থাকা অ্যালাউ কাউন্ট ধারণকারী ভেরিয়েবলের রেফারেন্সকে কোনো মানে রূপান্তর করা না গেলে এই ত্রুটিটি ঘটে। এই এলিমেন্টটি বাধ্যতামূলক এবং এটি কোটা কাউন্টার কমানোর পরিমাণ নির্দিষ্ট করে।
রোগ নির্ণয়
যে রিসেট কোটা পলিসিতে ত্রুটিটি ঘটেছে সেটি এবং যে রেফারেন্স ভেরিয়েবলটি সমাধান করা যাচ্ছে না তার নামটি শনাক্ত করুন। আপনি এই দুটি বিষয়ই ত্রুটির রেসপন্সে খুঁজে পাবেন।
উদাহরণস্বরূপ, নিম্নলিখিত faultstring-এ, পলিসির নাম হল
ResetQuotaএবং রেফারেন্সটি হলrequest.header.allowcount: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ব্যর্থ হওয়া রিসেট কোটা পলিসি XML-এ, যাচাই করুন যে ব্যবহৃত রেফারেন্স ভেরিয়েবলের নামটি এরর রেসপন্সে (উপরের ধাপ ১) চিহ্নিত রেফারেন্স নামের সাথে মেলে কিনা।
উদাহরণস্বরূপ, নিম্নলিখিত পলিসিটি
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- কে রিজলভ করতে পারে না। এমনটা ঘটে যদি API রিকোয়েস্টের অংশ হিসেবে allowcount হেডারটি পাস করা না হয়।এখানে একটি নমুনা এপিআই অনুরোধ দেওয়া হলো, যেখানে অনুরোধের অংশ হিসেবে allowcount হেডারটি পাঠানো হয় না:
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json"যেহেতু অনুরোধের অংশ হিসেবে allowcount হেডারটি পাস করা হয়নি, তাই উপরের রিসেট কোটা পলিসির
<Allow>এলিমেন্টে ব্যবহৃত request.header.allowcount ভেরিয়েবলটি অনির্ধারিত (undefined) থাকে এবং ফলস্বরূপ এটি সমাধান করা যায় না। তাই আপনি এই ত্রুটিপূর্ণ প্রতিক্রিয়াটি পাবেন: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"
}
}
}
কারণ
<Quota> এলিমেন্টের ref অ্যাট্রিবিউট দ্বারা নির্দেশিত ভেরিয়েবলটি সমাধান করা না গেলে এই ত্রুটিটি ঘটে।
উদাহরণস্বরূপ, যদি <Quota> এলিমেন্টে ref অ্যাট্রিবিউটটি request.header.quotapolicy হিসেবে সেট করা থাকে কিন্তু সেটি API প্রক্সি ফ্লোতে উপলব্ধ না থাকে, তাহলে আপনি উপরের এররটি পাবেন।
<Quota ref="request.header.quotapolicy">
রোগ নির্ণয়
যে এপিআই প্রক্সিতে ব্যর্থতা ঘটেছে, সেখানকার প্রতিটি রিসেট কোটা পলিসি পরীক্ষা করুন এবং সেই রিসেট কোটা পলিসিটি শনাক্ত করুন যেখানে
<Quota>এলিমেন্টে নির্দিষ্ট করা রেফারেন্স ভেরিয়েবলের নামটি সঠিকভাবে সমাধান করা যাচ্ছে না।যে ফ্লো-তে রিসেট কোটা পলিসিটি কার্যকর হয়, সেখানে ভেরিয়েবলটি সংজ্ঞায়িত এবং উপলব্ধ আছে কিনা তা নির্ধারণ করুন।
যদি ভেরিয়েবলটি হয়:
- আওতার বাইরে (যে নির্দিষ্ট কার্যপ্রবাহে নীতিটি কার্যকর হয় সেখানে উপলব্ধ নয়) অথবা
- সমাধান করা যাচ্ছে না (সংজ্ঞায়িত নয়)
তাহলে এটাই ত্রুটির কারণ।
নীচে দেখানো উদাহরণে, টার্গেট কোটা পলিসির নামটি `quotapolicy` নামের রিকোয়েস্ট হেডার থেকে নেওয়ার কথা। কিন্তু, Edge ` request.header.quotapolicy` রিজলভ করতে পারছে না। এমনটা ঘটে যদি API রিকোয়েস্টের অংশ হিসেবে `quotapolicy` হেডারটি পাস করা না হয়।
<?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>এখানে একটি নমুনা এপিআই অনুরোধ দেওয়া হলো, যেখানে অনুরোধের অংশ হিসেবে `quotapolicy` হেডারটি পাঠানো হয় না:
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json"যেহেতু অনুরোধের অংশ হিসেবে `quotapolicy` হেডারটি পাস করা হয়নি, তাই উপরের `Reset Quota policy`-এর
<Quota>এলিমেন্টে ব্যবহৃত ` request.header.quotapolicy` রেফারেন্সটি `undefined` থাকে এবং এটি `resolve` করা যায় না। ফলে, আপনি এই এরর রেসপন্সটি পান:"errorcode": "policies.resetquota.FailedToResolveRLPolicy"
সমাধান
নিশ্চিত করুন যে <Quota> এলিমেন্টে উল্লেখিত অ্যাট্রিবিউট ref রানটাইমে রিজলভ হয় এবং সেই নির্দিষ্ট ফ্লো-তে উপলব্ধ থাকে, যেখানে রিসেট কোটা পলিসিটি কার্যকর হয়।
উপরে দেখানো উদাহরণটি সংশোধন করতে, আপনি নিচে দেখানো অনুযায়ী quotapolicy হেডারটি অন্তর্ভুক্ত করার জন্য অনুরোধটি পরিবর্তন করতে পারেন:
curl -v http://demo-eval-test.apigee.net/v1/reset_quota -H "Content-Type: application/json" -H "quotapolicy:MyQuotaPolicy"