ResetQuota 政策

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

結果

用於動態修改目標配額政策允許的剩餘要求數量。 您通常會透過這項政策來減少目標配額政策目前的配額數量 而不必等候重設配額

例如,目標配額政策將開發人員每週只能提出 1000 個要求。按照 開發人員已達到此上限。使用重設配額政策 ,讓我們從配額計數器中減去 500 個要求,允許額外的 500 個要求, 一整週。一週結束時,配額政策會重設,開發人員將恢復為 1000 包括每週收到的要求數量

詳情請參閱配額政策 配額政策。另請參閱這個 社群貼文:瞭解如何使用「重設配額」政策。

範例

下列政策程式碼範例說明如何重設配額計數器:

重設預設計數器

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

重設配額政策會使用 <Quota> 標記的 name 屬性來指定目標配額政策。在上述範例中 也就是目標

所有重設配額政策都需要 &lt;Identifier&gt; 標記來指定 倒數計時器。根據預設,配額政策設有單一計數器 除非配額政策也包含 &lt;Identifier&gt; 標記。在這個例子中 目標配額政策不使用 &lt;Identifier&gt; 標記,因此您要指定 name 屬性為 _default

&lt;Allow&gt; 元素 指定用於減少目標政策目前配額數量的值。在本 例如,配額數量減少 100 個,讓目標配額再收到 100 次要求。 政策。目標配額政策重設後,系統會捨棄這項變更。

以下是目標配額政策的定義:

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

使用參照

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

在本範例中,您傳送了目標配額政策的名稱,以及變更的配額 視為要求中的標頭接著,您可以參照包含這些目標的流程變數 。

指定 ID

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

如果目標配額政策指定了 &lt;Identifier&gt; 標記,您就可以 指定與重設配額的 &lt;Identifier&gt; 標記相同的值 更新特定配額。請留意目標中的 &lt;Identifier&gt; 標記方式 下列配額政策與重設配額政策所指定的值相符:

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

元素參照

元素參照會說明重設配額政策的元素和屬性。

<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>

&lt;ResetQuota&gt;屬性

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

下表說明所有政策父項元素的共同屬性:

屬性 說明 預設 存在必要性
name

政策的內部名稱。name 屬性的值可以 包含英文字母、數字、空格、連字號、底線和半形句號。此值不能 超過 255 個半形字元

視需要使用 <DisplayName> 元素,為政策加上標籤: 管理使用者介面 Proxy 編輯器,使用不同的自然語言名稱。

不適用 必填
continueOnError

如果設為「false」,系統會在政策失敗時傳回錯誤。這是可預期的情況 大多數政策的行為

如果設為 true,即使政策已發生,流程執行作業仍會繼續執行 失敗。

false 選用
enabled

如要強制執行政策,請設為 true

設為 false 即可停用政策。這項政策不會 仍會強制執行 政策。

true 選用
async

此屬性已淘汰。

false 已淘汰

&lt;DisplayName&gt;元素

name 屬性外,一併使用 管理 UI Proxy 編輯器,使用不同的自然語言名稱。

<DisplayName>Policy Display Name</DisplayName>
預設

不適用

如果省略這個元素,政策的 name 屬性值會是

存在必要性 選用
類型 字串

&lt;Quota&gt;元素

指出應更新計數器的目標配額政策。

<Quota name="quotaName"  ref="request.header.quotapolicy">
   <Identifier name="identifierName" ref="request.header.identifier">
      <Allow>100</Allow>
   </Identifier>
</Quota>
預設: 不適用
所在地: 必填
類型: 不適用

屬性

屬性 說明 預設 存在必要性
名稱

指定目標配額政策的名稱。

不適用 選用
參考資料 包含目標配額政策名稱的流量變數。如果 refname 兩者皆有指定 則 ref 將優先顯示。 如果 ref 卻顯示 未在執行階段解析,然後使用 name 不適用 選用

&lt;Quota&gt;/&lt;Identifier&gt;元素

目標配額政策指定時,用來識別計數器的變數 &lt;Identifier&gt; 標記。

<Quota name="quotaName">
   <Identifier name="identifierName" ref="request.header.identifier">
      <Allow>100</Allow>
   </Identifier>
</Quota>
預設: 不適用
所在地: 必填
類型: 字串

屬性

屬性 說明 預設 存在必要性
名稱

指定目標配額政策中的數量 ID 名稱。針對配額 不使用 &lt;Identifier&gt; 標記的政策,請指定 _default

不適用 選用
參考資料

包含目標配額中計數 ID 名稱的流量變數 政策。如果同時指定 refnameref 將優先顯示。 如果 ref 未在 執行階段,則會使用 name

不適用 選用

&lt;Quota&gt;/&lt;Identifier&gt;/&lt;Allow&gt;元素

指定要減少配額計數器的金額。您必須指定 &lt;Allow&gt;,否則這項政策不會 並修改配額

<Identifier name="identifierName" ref="request.header.identifier">
   <Allow ref="request.header.allowquota">100</Allow>
</Identifier>
預設: 不適用
所在地: 必填
類型: 整數

屬性

屬性 說明 預設 存在必要性
參考資料

流程變數,包含目標配額政策中的配額數量變更。

不適用 選用

&lt;Quota&gt;/&lt;Identifier&gt;/&lt;Class&gt;元素

指定配額計數器要更新的類別。如要進一步瞭解如何搭配使用類別與 配額政策,請參閱配額政策 政策

<Identifier name="_default">
   <Class ref="request.header.classIdentifier">
     <Allow>200</Allow>
   </Class>
</Identifier>
預設: 不適用
所在地: 選用
類型: 不適用

屬性

屬性 說明 預設 存在必要性
參考資料

參照包含要更新配額類別的流程變數。

不適用 選用

錯誤參考資料

本節說明當這項政策觸發錯誤時,傳回的錯誤代碼和錯誤訊息,以及 Edge 設定的錯誤變數。 如果您正在開發錯誤規則來處理錯誤,請務必瞭解這項資訊。詳情請參閱「政策錯誤須知」和「處理錯誤」。

執行階段錯誤

執行政策時,可能會發生這些錯誤。

錯誤代碼 HTTP 狀態 原因 修正
policies.resetquota.InvalidRLPolicy 500 重設配額政策的 <Quota> 元素中指定的配額政策未在 API Proxy 中定義,因此不適用於流程。<Quota> 是必要元素,用於識別應透過「重設配額」政策更新的目標配額政策。
policies.resetquota.FailedToResolveAllowCountRef 不適用 如果參照的變數含有政策 <Allow> 元素中的允許計數,就無法將參照的變數解析為值。此為必要元素,並指定配額計數器的金額。
policies.resetquota.FailedToResolveRLPolicy 500 無法解析 <Quota> 元素中 ref 屬性所參照的變數。

部署錯誤

若您部署包含這項政策的 Proxy,就可能會發生這些錯誤。

錯誤名稱 原因 修正
InvalidCount 如果重設配額政策的 <Allow> 元素中指定的計數值不是整數,API Proxy 部署就會失敗。

結構定義

相關主題

配額政策