আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান । তথ্য

স্পাইক অ্যারেস্ট নীতি <Rate>
উপাদান দিয়ে ট্রাফিক বৃদ্ধির বিরুদ্ধে সুরক্ষা দেয়। এই উপাদানটি একটি API প্রক্সি দ্বারা প্রসেস করা অনুরোধের সংখ্যাকে থ্রোটল করে এবং একটি ব্যাকএন্ডে পাঠানো হয়, কর্মক্ষমতা ল্যাগ এবং ডাউনটাইম থেকে রক্ষা করে।
<SpikeArrest>
উপাদান
স্পাইক অ্যারেস্ট নীতি নির্ধারণ করে।
ডিফল্ট মান | নীচে ডিফল্ট নীতি ট্যাব দেখুন |
প্রয়োজন? | ঐচ্ছিক |
টাইপ | জটিল বস্তু |
অভিভাবক উপাদান | n/a |
শিশু উপাদান | <Identifier> <MessageWeight> <Rate> (প্রয়োজনীয়)<UseEffectiveCount> |
সিনট্যাক্স
<SpikeArrest>
উপাদান নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <DisplayName>display_name</DisplayName> <Properties/> <Identifier ref="flow_variable"/> <MessageWeight ref="flow_variable"/> <Rate ref="flow_variable">rate[pm|ps]</Rate> <UseEffectiveCount>[false|true]</UseEffectiveCount> </SpikeArrest>
ডিফল্ট নীতি
আপনি যখন এজ UI-তে আপনার প্রবাহে একটি স্পাইক অ্যারেস্ট নীতি যোগ করেন তখন নিম্নলিখিত উদাহরণটি ডিফল্ট সেটিংস দেখায়:
<SpikeArrest async="false" continueOnError="false" enabled="true" name="Spike-Arrest-1"> <DisplayName>Spike Arrest-1</DisplayName> <Properties/> <Identifier ref="request.header.some-header-name"/> <MessageWeight ref="request.header.weight"/> <Rate>30ps</Rate> <UseEffectiveCount>true</UseEffectiveCount> </SpikeArrest>
This element has the following attributes that are common to all policies:
Attribute | Default | Required? | Description |
---|---|---|---|
name |
N/A | Required |
The internal name of the policy. The value of the Optionally, use the |
continueOnError |
false | Optional | Set to "false" to return an error when a policy fails. This is expected behavior for most policies. Set to "true" to have flow execution continue even after a policy fails. |
enabled |
true | Optional | Set to "true" to enforce the policy. Set to "false" to "turn off" the policy. The policy will not be enforced even if it remains attached to a flow. |
async |
false | Deprecated | This attribute is deprecated. |
উদাহরণ
নিম্নলিখিত উদাহরণগুলি কিছু উপায় দেখায় যাতে আপনি স্পাইক অ্যারেস্ট নীতি ব্যবহার করতে পারেন:
উদাহরণ 1
নিম্নলিখিত উদাহরণটি প্রতি সেকেন্ডে পাঁচটি হার সেট করে:
<SpikeArrest name="Spike-Arrest-1"> <Rate>5ps</Rate> </SpikeArrest>
নীতিটি প্রতি 200 মিলিসেকেন্ডে (1000/5) অনুমোদিত একটি অনুরোধের হারকে মসৃণ করে।
উদাহরণ 2
নিম্নলিখিত উদাহরণটি প্রতি মিনিটে 300 এ হার সেট করে:
<SpikeArrest async="false" continueOnError="false" enabled="true" name="SpikeArreast"> <DisplayName>SpikeArreast</DisplayName> <Rate>300pm</Rate> </SpikeArrest>
কার্যকরী হার হল 300pm, মানে প্রতি 200 মিলিসেকেন্ডে একটি নতুন টোকেন বালতিতে যোগ করা হয়। বালতির আকার সর্বদা messagesPerPeriod
. অতএব, 300-এর একটি messagesPerPeriod
সহ, বালতির আকার হল 30 টোকেন৷
উদাহরণ 3
নিম্নলিখিত উদাহরণটি প্রতি মিনিটে 12 অনুরোধ সীমাবদ্ধ করে (প্রতি পাঁচ সেকেন্ডে একটি অনুরোধ অনুমোদিত, বা 60/12):
<SpikeArrest name="Spike-Arrest-1"> <Rate>12pm</Rate> <Identifier ref="client_id" /> <MessageWeight ref="request.header.weight" /> </SpikeArrest>
উপরন্তু, <MessageWeight>
উপাদানটি একটি কাস্টম মান ( weight
হেডার) গ্রহণ করে যা নির্দিষ্ট অ্যাপ বা ক্লায়েন্টদের জন্য বার্তা ওজন সামঞ্জস্য করে। এটি <Identifier>
এলিমেন্টের সাথে চিহ্নিত সত্তাগুলির জন্য থ্রোটলিং এর উপর অতিরিক্ত নিয়ন্ত্রণ প্রদান করে।
উদাহরণ 4
নিম্নলিখিত উদাহরণ স্পাইক অ্যারেস্টকে অনুরোধের মাধ্যমে একটি রানটাইম মান সেট করার নির্দেশ দেয় যা request.header.runtime_rate
ফ্লো ভেরিয়েবল হিসাবে পাস করা হয়েছে:
<SpikeArrest name="Spike-Arrest-1"> <Rate ref="request.header.runtime_rate" /> </SpikeArrest>
ফ্লো ভেরিয়েবলের মান অবশ্যই int pm
বা int ps
আকারে হতে হবে।
এই উদাহরণ চেষ্টা করার জন্য, নিম্নলিখিত মত একটি অনুরোধ চালান:
curl http://myorg-myenv.apigee.net/price -H 'runtime_rate:30ps'
শিশু উপাদান রেফারেন্স
এই বিভাগে <SpikeArrest>
এর চাইল্ড উপাদানগুলি বর্ণনা করা হয়েছে।
<DisplayName>
Use in addition to the name
attribute to label the policy in the
management UI proxy editor with a different, more natural-sounding name.
The <DisplayName>
element is common to all policies.
Default Value | n/a |
Required? | Optional. If you omit <DisplayName> , the value of the
policy's name attribute is used |
Type | String |
Parent Element | <PolicyElement> |
Child Elements | None |
The <DisplayName>
element uses the following syntax:
Syntax
<PolicyElement> <DisplayName>policy_display_name</DisplayName> ... </PolicyElement>
Example
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
The <DisplayName>
element has no attributes or child elements.
<Identifier>
ক্লায়েন্টের উপর ভিত্তি করে স্পাইক অ্যারেস্ট নীতি প্রয়োগ করার জন্য অনুরোধগুলিকে কীভাবে গোষ্ঠীভুক্ত করবেন তা আপনাকে চয়ন করতে দেয়। উদাহরণস্বরূপ, আপনি বিকাশকারী আইডি দ্বারা অনুরোধগুলিকে গোষ্ঠীভুক্ত করতে পারেন, এই ক্ষেত্রে প্রতিটি বিকাশকারীর অনুরোধগুলি তাদের নিজস্ব স্পাইক অ্যারেস্ট রেট হিসাবে গণনা করা হবে এবং প্রক্সির সমস্ত অনুরোধ নয়৷
অনুরোধ থ্রটলিং এর উপর আরো সূক্ষ্ম নিয়ন্ত্রণের জন্য <MessageWeight>
উপাদানের সাথে ব্যবহার করুন।
আপনি যদি <Identifier>
উপাদানটি খালি রাখেন, তাহলে সেই API প্রক্সিতে সমস্ত অনুরোধের জন্য একটি হারের সীমা বলবৎ করা হয়।
ডিফল্ট মান | n/a |
প্রয়োজন? | ঐচ্ছিক |
টাইপ | স্ট্রিং |
অভিভাবক উপাদান | <SpikeArrest> |
শিশু উপাদান | কোনোটিই নয় |
সিনট্যাক্স
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Identifier ref="flow_variable"/> </SpikeArrest>
উদাহরণ 1
নিম্নলিখিত উদাহরণটি বিকাশকারী আইডি প্রতি স্পাইক অ্যারেস্ট নীতি প্রযোজ্য:
<SpikeArrest name="Spike-Arrest-1"> <Identifier ref="developer.id"/> <Rate>42pm</Rate/> </SpikeArrest>
নিম্নলিখিত সারণী <Identifier>
এর বৈশিষ্ট্যগুলি বর্ণনা করে:
বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি |
---|---|---|---|
ref | স্পাইক অ্যারেস্ট গ্রুপ ইনকামিং অনুরোধের মাধ্যমে ভেরিয়েবল সনাক্ত করে। আপনি একটি অনন্য ক্লায়েন্ট নির্দেশ করতে যেকোন ফ্লো ভেরিয়েবল ব্যবহার করতে পারেন, যেমন VerifyAPIKey নীতিতে উপলব্ধ। এছাড়াও আপনি JavaScript নীতি বা AssignMessage নীতি ব্যবহার করে কাস্টম ভেরিয়েবল সেট করতে পারেন। | n/a | প্রয়োজন |
এই উপাদানটি নিম্নলিখিত Apigee কমিউনিটি পোস্টেও আলোচনা করা হয়েছে: http://community.apigee.com/questions/2807/how-does-the-edge-quota-policy-work-when-no-identi.html ।
<MessageWeight>
প্রতিটি বার্তার জন্য সংজ্ঞায়িত ওজন নির্দিষ্ট করে। মেসেজের ওজন স্পাইক অ্যারেস্ট রেট গণনার উপর একটি একক অনুরোধের প্রভাবকে পরিবর্তন করে। মেসেজের ওজন যেকোন ফ্লো ভেরিয়েবল হতে পারে, যেমন একটি HTTP হেডার, ক্যোয়ারী প্যারামিটার, ফর্ম প্যারামিটার, বা মেসেজের বডি কন্টেন্ট। এছাড়াও আপনি JavaScript নীতি বা AssignMessage নীতি ব্যবহার করে কাস্টম ভেরিয়েবল ব্যবহার করতে পারেন।
নির্দিষ্ট ক্লায়েন্ট বা অ্যাপ্লিকেশানগুলির দ্বারা আরও থ্রোটল অনুরোধের জন্য <Identifier>
এর সাথে ব্যবহার করুন।
উদাহরণস্বরূপ, যদি স্পাইক অ্যারেস্ট <Rate>
হয় 10pm
, এবং একটি অ্যাপ 2
এর ওজন সহ অনুরোধ জমা দেয়, তাহলে সেই ক্লায়েন্টের কাছ থেকে প্রতি মিনিটে শুধুমাত্র পাঁচটি বার্তা অনুমোদিত কারণ প্রতিটি অনুরোধ 2 হিসাবে গণনা করা হয়।
ডিফল্ট মান | n/a |
প্রয়োজন? | ঐচ্ছিক |
টাইপ | পূর্ণসংখ্যা |
অভিভাবক উপাদান | <SpikeArrest> |
শিশু উপাদান | কোনোটিই নয় |
সিনট্যাক্স
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <MessageWeight ref="flow_variable"/> </SpikeArrest>
উদাহরণ 1
নিম্নলিখিত উদাহরণটি প্রতি মিনিটে 12 অনুরোধ সীমাবদ্ধ করে (প্রতি পাঁচ সেকেন্ডে একটি অনুরোধ অনুমোদিত, বা 60/12):
<SpikeArrest name="Spike-Arrest-1"> <Rate>12pm</Rate> <Identifier ref="client_id" /> <MessageWeight ref="request.header.weight" /> </SpikeArrest>
এই উদাহরণে, <MessageWeight>
একটি কাস্টম মান (অনুরোধে weight
শিরোনাম) গ্রহণ করে যা নির্দিষ্ট ক্লায়েন্টদের জন্য বার্তা ওজন সামঞ্জস্য করে। এটি <Identifier>
এলিমেন্টের সাথে চিহ্নিত সত্তাগুলির জন্য থ্রোটলিং এর উপর অতিরিক্ত নিয়ন্ত্রণ প্রদান করে।
নিম্নলিখিত সারণী <MessageWeight>
-এর গুণাবলী বর্ণনা করে:
বৈশিষ্ট্য | বর্ণনা | উপস্থিতি | ডিফল্ট |
---|---|---|---|
ref | নির্দিষ্ট ক্লায়েন্টের জন্য বার্তা ওজন ধারণ করে ফ্লো ভেরিয়েবল সনাক্ত করে। এটি যেকোনো ফ্লো ভেরিয়েবল হতে পারে, যেমন একটি HTTP ক্যোয়ারী প্যারাম, হেডার, বা মেসেজ বডি কন্টেন্ট। আরও তথ্যের জন্য, ফ্লো ভেরিয়েবল রেফারেন্স দেখুন। এছাড়াও আপনি JavaScript নীতি বা AssignMessage নীতি ব্যবহার করে কাস্টম ভেরিয়েবল সেট করতে পারেন। | প্রয়োজন | N/A |
<Rate>
প্রতি মিনিটে বা প্রতি সেকেন্ডের ব্যবধানে অনুমোদিত অনুরোধের সংখ্যা সেট করে ট্র্যাফিক স্পাইক (বা বিস্ফোরণ) সীমিত করার হার নির্দিষ্ট করে৷ আপনি ক্লায়েন্টের কাছ থেকে মান গ্রহণ করে রানটাইমে ট্র্যাফিককে মসৃণভাবে থ্রোটল করতে <Identifier>
এবং <MessageWeight>
এর সাথে একত্রে এই উপাদানটি ব্যবহার করতে পারেন।
ডিফল্ট মান | n/a |
প্রয়োজন? | প্রয়োজন |
টাইপ | পূর্ণসংখ্যা |
অভিভাবক উপাদান | <SpikeArrest> |
শিশু উপাদান | কোনোটিই নয় |
সিনট্যাক্স
আপনি নিম্নলিখিত উপায়গুলির মধ্যে একটিতে হার নির্দিষ্ট করতে পারেন:
- একটি স্ট্যাটিক রেট যা আপনি
<Rate>
উপাদানের বডি হিসেবে নির্দিষ্ট করেন - একটি পরিবর্তনশীল মান, যা ক্লায়েন্ট দ্বারা পাস করা যেতে পারে;
ref
অ্যাট্রিবিউট ব্যবহার করে ফ্লো ভেরিয়েবলের নাম শনাক্ত করুন
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Rate ref="flow_variable">rate[pm|ps]</Rate> </SpikeArrest>
বৈধ হারের মানগুলি (হয় একটি পরিবর্তনশীল মান হিসাবে বা উপাদানের মূল অংশে সংজ্ঞায়িত) নিম্নলিখিত বিন্যাসের সাথে সঙ্গতিপূর্ণ হতে হবে:
-
int ps
(প্রতি সেকেন্ডে অনুরোধের সংখ্যা, মিলিসেকেন্ডের ব্যবধানে মসৃণ) -
int pm
(প্রতি মিনিটে অনুরোধের সংখ্যা, সেকেন্ডের ব্যবধানে মসৃণ)
int এর মান অবশ্যই একটি ধনাত্মক, অ-শূন্য পূর্ণসংখ্যা হতে হবে।
উদাহরণ 1
নিম্নলিখিত উদাহরণটি প্রতি সেকেন্ডে পাঁচটি অনুরোধের হার সেট করে:
<SpikeArrest name="Spike-Arrest-1"> <Rate>5ps</Rate> </SpikeArrest>
নীতিটি প্রতি 200 মিলিসেকেন্ডে (1000/5) অনুমোদিত একটি অনুরোধের হারকে মসৃণ করে।
উদাহরণ 2
নিম্নলিখিত উদাহরণটি প্রতি মিনিটে 12টি অনুরোধের হার সেট করে:
<SpikeArrest async="false" continueOnError="false" enabled="true" name="SpikeArreast"> <DisplayName>SpikeArreast</DisplayName> <Rate>300pm</Rate> </SpikeArrest>
এই উদাহরণ নীতি প্রতি পাঁচ সেকেন্ডে একটি অনুরোধের হারকে মসৃণ করে (60/12)।
নিম্নলিখিত সারণী <Rate>
এর বৈশিষ্ট্যগুলি বর্ণনা করে:
বৈশিষ্ট্য | বর্ণনা | উপস্থিতি | ডিফল্ট |
---|---|---|---|
ref | একটি ফ্লো ভেরিয়েবল সনাক্ত করে যা হার নির্দিষ্ট করে। এটি যেকোন ফ্লো ভেরিয়েবল হতে পারে, যেমন একটি HTTP ক্যোয়ারী প্যারামিটার, হেডার, বা মেসেজ বডি কন্টেন্ট, অথবা একটি মান যেমন একটি KVM। আরও তথ্যের জন্য, ফ্লো ভেরিয়েবল রেফারেন্স দেখুন। এছাড়াও আপনি JavaScript নীতি বা AssignMessage নীতি ব্যবহার করে কাস্টম ভেরিয়েবল ব্যবহার করতে পারেন। আপনি যদি এই উপাদানটির যেমন: <Rate ref="request.header.custom_rate">1pm</Rate> এই উদাহরণে, যদি ক্লায়েন্ট একটি "কাস্টম_রেট" শিরোনাম পাস না করে, তাহলে API প্রক্সির জন্য রেট হল সমস্ত ক্লায়েন্টের জন্য প্রতি মিনিটে 1 অনুরোধ৷ যদি ক্লায়েন্ট একটি "কাস্টম_রেট" শিরোনাম পাস করে, তাহলে প্রক্সিতে থাকা সমস্ত ক্লায়েন্টের জন্য হারের সীমা প্রতি সেকেন্ডে 10টি অনুরোধ হয়ে যায় — যতক্ষণ না "কাস্টম_রেট" শিরোনাম ছাড়া একটি অনুরোধ পাঠানো হয়। আপনি বিভিন্ন ধরনের ক্লায়েন্টের জন্য কাস্টম হার প্রয়োগ করার জন্য অনুরোধগুলিকে গ্রুপ করতে আপনি যদি | ঐচ্ছিক | n/a |
<UseEffectiveCount>
অটো-স্কেলিং গ্রুপ ব্যবহার করার সময় আপনার স্পাইক অ্যারেস্ট গণনা মেসেজ প্রসেসর (এমপি) জুড়ে বিতরণ করে।
সিনট্যাক্স
<SpikeArrest continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <UseEffectiveCount>[false|true]</UseEffectiveCount> </SpikeArrest>
উদাহরণ 1
নিম্নলিখিত উদাহরণটি <UseEffectiveCount>
কে সত্যে সেট করে:
<SpikeArrest name='Spike-Arrest-1'> <Rate>40ps</Rate> <UseEffectiveCount>true</UseEffectiveCount> </SpikeArrest>
<UseEffectiveCount>
উপাদানটি ঐচ্ছিক। আপনার স্পাইক অ্যারেস্ট নীতি থেকে উপাদানটি বাদ দিলে ডিফল্ট মানটি false
।
ডিফল্ট মান | মিথ্যা |
প্রয়োজন? | ঐচ্ছিক |
টাইপ | বুলিয়ান |
অভিভাবক উপাদান | <SpikeArrest> |
শিশু উপাদান | কোনোটিই নয় |
নিচের টেবিলটি <UseEffectiveCount>
উপাদানের বৈশিষ্ট্য বর্ণনা করে:
বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি |
---|---|---|---|
ref | <UseEffectiveCount> এর মান ধারণকারী ভেরিয়েবল সনাক্ত করে। এটি যেকোনো ফ্লো ভেরিয়েবল হতে পারে, যেমন একটি HTTP ক্যোয়ারী প্যারাম, হেডার, বা মেসেজ বডি কন্টেন্ট। আরও তথ্যের জন্য, ফ্লো ভেরিয়েবল রেফারেন্স দেখুন। এছাড়াও আপনি JavaScript নীতি বা AssignMessage নীতি ব্যবহার করে কাস্টম ভেরিয়েবল সেট করতে পারেন। | n/a | ঐচ্ছিক |
<UseEffectiveCount>
এর প্রভাব এর মানের উপর নির্ভর করে:
-
true
: একজন এমপির স্পাইক রেট সীমা হল একই পডে বর্তমান এমপিদের সংখ্যা দ্বারা ভাগ করা<Rate>
। সমষ্টিগত সীমা হল<Rate>
এর মান। যখন এমপিদের গতিশীলভাবে যুক্ত করা হয় (বা সরানো হয়), তখন তাদের স্বতন্ত্র স্পাইক রেট সীমা বাড়বে (বা কমবে), কিন্তু সামগ্রিক সীমা একই থাকবে। -
false
(এটি ডিফল্ট মান যদি বাদ দেওয়া হয়): প্রতিটি এমপির স্পাইক রেট সীমা কেবল তার<Rate>
এর মান। সমষ্টিগত সীমা হল সকল এমপির হারের সমষ্টি। যখন এমপিদের যোগ করা হয় (বা সরানো হয়), তখন তাদের স্বতন্ত্র স্পাইক রেট সীমা একই থাকবে, কিন্তু সামগ্রিক সীমা বাড়বে (বা কমবে)।
নিম্নলিখিত টেবিলটি প্রতিটি এমপির কার্যকর হার সীমার উপর <UseEffectiveCount>
এর প্রভাব দেখায়:
<UseEffectiveCount> এর মান | ||||||
---|---|---|---|---|---|---|
false | false | false | true | true | true | |
# সংসদ সদস্য | 8 | 4 | 2 | 8 | 4 | 2 |
<Rate> এর মান | 10 | 10 | 10 | 40 | 40 | 40 |
এমপি প্রতি কার্যকর হার | 10 | 10 | 10 | 5 | 10 | 20 |
সামগ্রিক সীমা | 80 | 40 | 20 | 40* | 40* | 40* |
* <Rate> এর মতো। |
এই উদাহরণে, লক্ষ্য করুন যে যখন এমপির সংখ্যা 4 থেকে কমে 2 হয় এবং <UseEffectiveCount>
false
হয়, তখন প্রতি এমপি কার্যকরী হার একই থাকে (10 এ)। কিন্তু যখন <UseEffectiveCount>
true
হয়, এমপির সংখ্যা 4 থেকে 2 তে কমে গেলে প্রতি এমপি কার্যকরী হার 10 থেকে 20 হয়ে যায়।
ফ্লো ভেরিয়েবল
যখন একটি স্পাইক অ্যারেস্ট নীতি কার্যকর হয়, তখন নিম্নলিখিত ফ্লো ভেরিয়েবলটি পপুলেট করা হয়:
পরিবর্তনশীল | টাইপ | অনুমতি | বর্ণনা |
---|---|---|---|
ratelimit. policy_name .failed | বুলিয়ান | শুধুমাত্র পঠনযোগ্য | নীতি ব্যর্থ হয়েছে কিনা তা নির্দেশ করে ( true বা false )। |
আরও তথ্যের জন্য, ফ্লো ভেরিয়েবল রেফারেন্স দেখুন।
ত্রুটি উল্লেখ
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
Fault code | HTTP status | Cause | Fix |
---|---|---|---|
policies.ratelimit.FailedToResolveSpikeArrestRate |
500 |
This error occurs if the reference to the variable containing the rate setting
within the <Rate> element cannot be resolved to a value within the Spike Arrest
policy. This element is mandatory and used to specify the spike arrest rate in
the form of intpm or intps . |
build |
policies.ratelimit.InvalidMessageWeight |
500 |
This error occurs if the value specified for the <MessageWeight> element through
a flow variable is invalid (a non-integer value). |
build |
policies.ratelimit.SpikeArrestViolation |
429 |
The rate limit was exceeded. |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
Error name | Cause | Fix |
---|---|---|
InvalidAllowedRate |
If the spike arrest rate specified in the <Rate> element of the Spike Arrest
Policy is not an integer or if the rate does not have ps or pm as a suffix,
then the deployment of the API proxy fails. |
build |
Fault variables
These variables are set when a runtime error occurs. For more information, see What you need to know about policy errors.
Variables | Where | Example |
---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. | fault.name Matches "SpikeArrestViolation" |
ratelimit.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | ratelimit.SA-SpikeArrestPolicy.failed = true |
Example error response
Shown below is an example error response:
{ "fault":{ "detail":{ "errorcode":"policies.ratelimit.SpikeArrestViolation" }, "faultstring":"Spike arrest violation. Allowed rate : 10ps" } }
Example fault rule
Shown below is an example fault rule to handle a SpikeArrestViolation
fault:
<FaultRules> <FaultRule name="Spike Arrest Errors"> <Step> <Name>JavaScript-1</Name> <Condition>(fault.name Matches "SpikeArrestViolation") </Condition> </Step> <Condition>ratelimit.Spike-Arrest-1.failed=true</Condition> </FaultRule> </FaultRules>
কোটা বা স্পাইক অ্যারেস্ট নীতি দ্বারা নির্ধারিত হারের সীমা অতিক্রম করার জন্য বর্তমান HTTP স্ট্যাটাস কোড হল 429
(অনেক অনুরোধ)। HTTP স্থিতি কোডকে 500
(অভ্যন্তরীণ সার্ভার ত্রুটি) এ পরিবর্তন করতে, আপডেট সংস্থা বৈশিষ্ট্য API ব্যবহার করে features.isHTTPStatusTooManyRequestEnabled
.isHTTPStatusTooManyRequestEnabled প্রপার্টিটিকে false
সেট করুন।
যেমন:
curl -u email:password -X POST -H "Content-type:application/xml" http://api.enterprise.apigee.com/v1/organizations/myorg -d \ "<Organization type="trial" name="MyOrganization"> <Properties> <Property name="features.isHTTPStatusTooManyRequestEnabled">true</Property> . . . </Properties> </Organization>"
স্কিমাস
প্রতিটি নীতির ধরন একটি XML স্কিমা ( .xsd
) দ্বারা সংজ্ঞায়িত করা হয়। রেফারেন্সের জন্য, নীতি স্কিমা GitHub এ উপলব্ধ।
সম্পর্কিত বিষয়
- কোটা নীতি : পৃথক ক্লায়েন্টদের উপর ট্রাফিক সীমিত করার জন্য কোটা নীতি
- একটি হার সীমিত ওভারভিউ জন্য হার-সীমাবদ্ধতা
- কোটা এবং স্পাইক অ্যারেস্ট নীতির তুলনা করা
- API প্রক্সিগুলির কাজের নমুনা