Kebijakan ResetQuota

Halaman ini berlaku untuk Apigee dan Apigee Hybrid.

Lihat dokumentasi Apigee Edge.

ikon kebijakan

Apa

Digunakan untuk mengubah secara dinamis jumlah permintaan yang tersisa yang diizinkan oleh kebijakan Kuota target. Anda biasanya menggunakan kebijakan ini untuk mengurangi jumlah kuota saat ini dari kebijakan Kuota target, bukan menunggu hingga jumlah kuota direset.

Misalnya, kebijakan Kuota target membatasi developer hingga 1.000 permintaan per minggu. Pada hari kedua dalam seminggu, developer telah mencapai batas ini. Gunakan kebijakan Reset Kuota untuk mengurangi 500 dari penghitung kuota mereka agar mereka dapat membuat 500 permintaan tambahan selama sisa minggu tersebut. Di akhir minggu, kebijakan Kuota direset, dan developer kembali ke 1.000 permintaan untuk minggu tersebut.

Kebijakan ini adalah Kebijakan yang dapat diperluas dan penggunaan kebijakan ini mungkin memiliki implikasi biaya atau penggunaan, bergantung pada lisensi Apigee Anda. Untuk mengetahui informasi tentang jenis kebijakan dan implikasi penggunaannya, lihat Jenis kebijakan.

Lihat Kebijakan kuota untuk mengetahui informasi selengkapnya tentang Kebijakan kuota. Lihat juga postingan komunitas ini tentang penggunaan kebijakan Reset Kuota.

Sampel

Contoh kode kebijakan ini menunjukkan cara mereset penghitung kuota:

Reset Penghitung Default

<ResetQuota name="resetQuota">
   <Quota name="MyQuotaPolicy">
      <Identifier name="_default">
         <Allow>100</Allow>
      </Identifier>
   </Quota>
</ResetQuota>

Kebijakan Reset Kuota menentukan kebijakan Kuota target menggunakan atribut name dari tag <Quota>. Dalam contoh di atas, kebijakan MyQuotaPolicy adalah targetnya.

Semua kebijakan Reset Kuota memerlukan tag <Identifier> untuk menentukan penghitung dalam kebijakan Kuota yang akan diperbarui. Secara default, kebijakan Kuota memiliki satu penghitung, kecuali jika kebijakan Kuota juga menyertakan tag <Identifier>. Dalam contoh ini, kebijakan Kuota target tidak menggunakan tag <Identifier>, jadi Anda menentukan atribut name sebagai _default.

Elemen <Allow> menentukan nilai yang digunakan untuk mengurangi jumlah kuota saat ini pada kebijakan target. Dalam contoh ini, jumlah kuota dikurangi 100, sehingga memungkinkan 100 permintaan lagi ke kebijakan Kuota target. Jika kebijakan Kuota target direset, perubahan ini akan dihapus.

Di bawah ini adalah definisi kebijakan Kuota target:

<Quota name="MyQuotaPolicy">
  <Interval>5</Interval>
  <TimeUnit>hour</TimeUnit>
  <Allow count="100"/>
</Quota>

Menggunakan Referensi

<ResetQuota name="resetQuota">
   <Quota ref="request.header.quotapolicy">
      <Identifier name="_default">
         <Allow ref="request.header.allowquota" />
      </Identifier>
   </Quota>
</ResetQuota>

Dalam contoh ini, Anda meneruskan nama kebijakan Kuota target, dan perubahan pada jumlah kuotanya, sebagai header dalam permintaan. Kemudian, Anda dapat mereferensikan variabel alur yang berisi nilai-nilai ini dalam kebijakan Reset Kuota.

Menentukan ID

<ResetQuota name="resetQuota">
   <Quota name="QuotaPolicy">
      <Identifier ref="request.header.clientId">
         <Allow>100</Allow>
      </Identifier>
   </Quota>
</ResetQuota>

Jika kebijakan Kuota target menentukan tag <Identifier>, Anda dapat menentukan nilai yang sama ke tag <Identifier> kebijakan Reset Kuota untuk memperbarui jumlah kuota tertentu. Perhatikan cara tag <Identifier> dalam kebijakan Kuota target di bawah cocok dengan nilai yang ditentukan untuk kebijakan Reset Kuota:

<Quota name="QuotaPolicy">
  <Identifier ref="request.header.clientId"/> 
  <Interval>5</Interval>
  <TimeUnit>hour</TimeUnit>
  <Allow count="100"/>
</Quota>

Referensi elemen

Referensi elemen menjelaskan elemen dan atribut kebijakan Reset Kuota.

<ResetQuota async="false" continueOnError="false" enabled="true" name="Reset-Quota-1">
   <DisplayName>Reset Quota 1</DisplayName>
   <Quota name="quotaName" ref="request.header.quotapolicy">
      <Identifier name="identifierName" ref="request.header.identifier">
         <Class ref="request.header.classIdentifier" />
         <Allow>100</Allow>
      </Identifier>
   </Quota>
</ResetQuota>

Atribut <ResetQuota>

<ResetQuota async="false" continueOnError="false" enabled="true" name="Reset-Quota-1"> 

The following table describes attributes that are common to all policy parent elements:

Attribute Description Default Presence
name

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.

N/A Required
continueOnError

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. See also:

false Optional
enabled

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.

true Optional
async

This attribute is deprecated.

false Deprecated

<DisplayName> element

Use in addition to the name attribute to label the policy in the management UI proxy editor with a different, natural-language name.

<DisplayName>Policy Display Name</DisplayName>
Default

N/A

If you omit this element, the value of the policy's name attribute is used.

Presence Optional
Type String

Elemen <Quota>

Mengidentifikasi kebijakan Kuota target yang counternya harus diperbarui.

<Quota name="quotaName"  ref="request.header.quotapolicy">
   <Identifier name="identifierName" ref="request.header.identifier">
      <Allow>100</Allow>
   </Identifier>
</Quota>
Default: T/A
Kehadiran: Wajib
Jenis: T/A

Atribut

Atribut Deskripsi Default Kehadiran
nama

Menentukan nama kebijakan Kuota target.

T/A Opsional
ref Variabel alur yang berisi nama kebijakan Kuota target. Jika ref dan name ditentukan, ref akan diprioritaskan. Jika ref tidak dapat diselesaikan saat runtime, name akan digunakan. T/A Opsional

Elemen <Quota>/<Identifier>

Variabel yang digunakan untuk mengidentifikasi penghitung secara unik jika kebijakan Kuota target menentukan tag <Identifier>.

<Quota name="quotaName">
   <Identifier name="identifierName" ref="request.header.identifier">
      <Allow>100</Allow>
   </Identifier>
</Quota>
Default: T/A
Kehadiran: Wajib
Jenis: String

Atribut

Atribut Deskripsi Default Kehadiran
nama

Menentukan nama ID jumlah di kebijakan Kuota target. Untuk kebijakan Kuota yang tidak menggunakan tag <Identifier>, tentukan _default.

T/A Opsional
ref

Variabel alur yang berisi nama ID penghitungan dalam kebijakan Kuota target. Jika ref dan name ditentukan, maka ref akan diprioritaskan. Jika ref tidak diselesaikan saat runtime, name akan digunakan.

T/A Opsional

Elemen <Quota>/<Identifier>/<Allow>

Menentukan jumlah untuk mengurangi penghitung kuota. Anda harus menentukan <Allow>. Jika tidak, kebijakan tidak akan mengubah kuota.

<Identifier name="identifierName" ref="request.header.identifier">
   <Allow ref="request.header.allowquota">100</Allow>
</Identifier>
Default: T/A
Kehadiran: Wajib
Jenis: Bilangan bulat

Atribut

Atribut Deskripsi Default Kehadiran
ref

Variabel alur yang berisi perubahan pada jumlah kuota dalam kebijakan Kuota target.

T/A Opsional

Elemen <Quota>/<Identifier>/<Class>

Menentukan class yang penghitung Kuotanya diperbarui. Untuk mengetahui informasi selengkapnya tentang penggunaan class dengan kebijakan Kuota, lihat Kebijakan kuota.

<Identifier name="_default">
   <Class ref="request.header.classIdentifier">
     <Allow>200</Allow>
   </Class>
</Identifier>
Default: T/A
Kehadiran: Opsional
Jenis: T/A

Atribut

Atribut Deskripsi Default Kehadiran
ref

Referensi ke variabel alur yang berisi class kuota yang akan diupdate.

T/A Opsional

Referensi error

This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee 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.resetquota.InvalidRLPolicy 500 The Quota policy specified in the <Quota> element of the ResetQuota policy is not defined in the API proxy and thus is not available during the flow. The <Quota> element is mandatory and identifies the target Quota policy whose counter should be updated through the ResetQuota policy.
policies.resetquota.FailedToResolveAllowCountRef N/A The reference to the variable containing the allow count in the <Allow> element of the policy cannot be resolved to a value. This element is mandatory and specifies the amount to decrease the quota counter.
policies.resetquota.FailedToResolveRLPolicy 500 The variable referenced by the ref attribute in the <Quota> element cannot be resolved.

Deployment errors

These errors can occur when you deploy a proxy containing this policy.

Error name Cause Fix
InvalidCount If the count value specified in the <Allow> element of the ResetQuota Policy is not an integer, then the deployment of the API proxy fails.

Skema

Topik terkait

Kebijakan kuota