স্পাইক অ্যারেস্ট নীতি

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

এজ UI থেকে স্পাইক অ্যারেস্ট আইকন

স্পাইক অ্যারেস্ট নীতি <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 name attribute can contain letters, numbers, spaces, hyphens, underscores, and periods. This value cannot exceed 255 characters.

Optionally, use the <DisplayName> element to label the policy in the management UI proxy editor with a different, natural-language name.

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 নীতি ব্যবহার করে কাস্টম ভেরিয়েবল ব্যবহার করতে পারেন।

আপনি যদি এই উপাদানটির ref এবং বডি উভয়ই সংজ্ঞায়িত করেন, তাহলে ref মান প্রয়োগ করা হয় এবং অনুরোধে ফ্লো ভেরিয়েবল সেট করা হলে অগ্রাধিকার নেয়। (বিপরীতটি সত্য হয় যখন ref এ চিহ্নিত ভেরিয়েবল অনুরোধে সেট করা হয় না ।)

যেমন:

<Rate ref="request.header.custom_rate">1pm</Rate>

এই উদাহরণে, যদি ক্লায়েন্ট একটি "কাস্টম_রেট" শিরোনাম পাস না করে, তাহলে API প্রক্সির জন্য রেট হল সমস্ত ক্লায়েন্টের জন্য প্রতি মিনিটে 1 অনুরোধ৷ যদি ক্লায়েন্ট একটি "কাস্টম_রেট" শিরোনাম পাস করে, তাহলে প্রক্সিতে থাকা সমস্ত ক্লায়েন্টের জন্য হারের সীমা প্রতি সেকেন্ডে 10টি অনুরোধ হয়ে যায় — যতক্ষণ না "কাস্টম_রেট" শিরোনাম ছাড়া একটি অনুরোধ পাঠানো হয়।

আপনি বিভিন্ন ধরনের ক্লায়েন্টের জন্য কাস্টম হার প্রয়োগ করার জন্য অনুরোধগুলিকে গ্রুপ করতে <Identifier> ব্যবহার করতে পারেন।

আপনি যদি ref জন্য একটি মান নির্দিষ্ট করেন কিন্তু <Rate> উপাদানের মূল অংশে হার সেট না করেন এবং ক্লায়েন্ট একটি মান পাস না করে, তাহলে স্পাইক অ্যারেস্ট নীতি একটি ত্রুটি ছুড়ে দেয়।

ঐচ্ছিক 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.
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).
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.

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 এ উপলব্ধ।

সম্পর্কিত বিষয়