このページは Apigee と Apigee ハイブリッドに適用されます。
  Apigee Edge のドキュメントを表示する。
  
       
 
  
概要
ターゲットの Quota ポリシーで許可されている残りのリクエスト数を動的に変更します。このポリシーは通常、割り当てカウントのリセットを待たずに、ターゲットの Quota ポリシーの現在の割り当てカウントを減らす場合に使用します。
たとえば、ターゲットの Quota ポリシーで 1 週間のリクエスト数が 1,000 件に制限されているときに、週の 2 日目に、デベロッパーがこの上限に達したとします。Reset Quota ポリシーを使用して、割り当てカウンタから 500 を引き、週の残りの日数に追加で 500 件のリクエストを許可します。週末に Quota ポリシーがリセットされるので、デベロッパーの週のリクエストは 1,000 件に戻ります。
このポリシーは拡張可能なポリシーです。Apigee ライセンスによっては、このポリシーの使用によって費用や使用量に影響する場合があります。ポリシータイプと使用量への影響については、ポリシータイプをご覧ください。
Quota ポリシーの詳細については、Quota ポリシーをご覧ください。また、Reset Quota ポリシーの使用方法については、こちらのコミュニティ投稿をご覧ください。
サンプル
次のポリシーコードのサンプルでは、割り当てカウンタのリセット方法を説明します。
デフォルト カウンタをリセットする
<ResetQuota name="resetQuota">
   <Quota name="MyQuotaPolicy">
      <Identifier name="_default">
         <Allow>100</Allow>
      </Identifier>
   </Quota>
</ResetQuota>Reset Quota ポリシーでは、<Quota> タグの name 属性を使用して、ターゲット Quota ポリシーを指定します。上の例では、MyQuotaPolicy ポリシーがターゲットです。
すべての Reset Quota ポリシーで、更新する Quota ポリシーのカウンタを指定するために <Identifier> タグが必要です。デフォルトでは、Quota ポリシーに <Identifier> タグも含まれていない限り、Quota ポリシーにはカウンタが 1 つあります。この例では、ターゲットの Quota ポリシーで <Identifier> タグを使用しないため、name 属性を _default として指定します。
<Allow> 要素では、ターゲット ポリシーの現在の割り当て数を減らすために使用される値を指定します。この例では、割り当てカウントを 100 減らしているので、ターゲットの Quota ポリシーに追加で 100 件のリクエストが許可されます。ターゲットの Quota ポリシーがリセットされると、この変更は破棄されます。
以下に、ターゲットの Quota ポリシーの定義を示します。
<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>この例では、リクエストのヘッダーでターゲットの Quota ポリシーの名前を渡し、割り当てカウントを変更しています。これらの値を含むフロー変数を Reset Quota ポリシーで参照できます。
ID を指定する
<ResetQuota name="resetQuota">
   <Quota name="QuotaPolicy">
      <Identifier ref="request.header.clientId">
         <Allow>100</Allow>
      </Identifier>
   </Quota>
</ResetQuota>ターゲット Quota ポリシーで <Identifier> タグを指定する場合は、Reset Quota ポリシーの <Identifier> タグに同じ値を指定して、特定の割り当て数を更新できます。以下のターゲット Quota ポリシーの <Identifier> タグが、Reset Quota ポリシーに指定された値とどの程度一致しているかを確認します。
<Quota name="QuotaPolicy"> <Identifier ref="request.header.clientId"/> <Interval>5</Interval> <TimeUnit>hour</TimeUnit> <Allow count="100"/> </Quota>
要素リファレンス
この要素リファレンスでは、Reset 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><ResetQuota> 属性
<ResetQuota async="false" continueOnError="false" enabled="true" name="Reset-Quota-1">
次の表に、すべてのポリシーの親要素に共通する属性を示します。
| 属性 | 説明 | デフォルト | 要否 | 
|---|---|---|---|
| name | ポリシーの内部名。 管理 UI プロキシ エディタで  | なし | 必須 | 
| continueOnError | ポリシーが失敗したときにエラーを返す場合は、 ポリシーが失敗した後もフローの実行を続行する場合は、 | false | 省略可 | 
| enabled | ポリシーを適用するには、 ポリシーを無効にするには、 | true | 省略可 | 
| async | この属性は非推奨となりました。 | false | 非推奨 | 
<DisplayName> 要素
管理 UI プロキシ エディタで name 属性と一緒に使用して、ポリシーのラベルに使用する自然言語名を指定します。
<DisplayName>Policy Display Name</DisplayName>
| デフォルト | なし この要素を省略した場合、ポリシーの  | 
|---|---|
| 要否 | 省略可 | 
| タイプ | 文字列 | 
<Quota> 要素
カウンタを更新するターゲット Quota ポリシーを指定します。
<Quota name="quotaName"  ref="request.header.quotapolicy">
   <Identifier name="identifierName" ref="request.header.identifier">
      <Allow>100</Allow>
   </Identifier>
</Quota>| デフォルト: | なし | 
| 要否: | 必須 | 
| 型: | なし | 
属性
| 属性 | 説明 | デフォルト | 要否 | 
|---|---|---|---|
| name | ターゲット Quota ポリシーの名前を指定します。 | なし | 省略可 | 
| ref | ターゲット Quota ポリシーの名前を含むフロー変数。ref と name の両方が指定されている場合は、ref が優先されます。 ランタイムに ref が解決されない場合は、name が使用されます。 | なし | 省略可 | 
<Quota> / <Identifier> 要素
ターゲット Quota ポリシーで <Identifier> タグが指定されている場合に、カウンタを一意に識別するために使用される変数。
<Quota name="quotaName">
   <Identifier name="identifierName" ref="request.header.identifier">
      <Allow>100</Allow>
   </Identifier>
</Quota>| デフォルト: | なし | 
| 要否: | 必須 | 
| 型: | 文字列 | 
属性
| 属性 | 説明 | デフォルト | 要否 | 
|---|---|---|---|
| name | ターゲット Quota ポリシーのカウント ID の名前を指定します。<Identifier> タグを使用しない Quota ポリシーの場合は、_default を指定します。 | なし | 省略可 | 
| ref | ターゲット Quota ポリシーのカウント ID の名前を含むフロー変数。ref と name の両方が指定されている場合は、refが優先されます。ランタイムに ref が解決されない場合は、name が使用されます。 | なし | 省略可 | 
<Quota> / <Identifier> / <Allow> 要素
割り当てカウンタを減らす量を指定します。<Allow> を指定する必要があります。指定しない場合、ポリシーで割り当てが変更されません。
<Identifier name="identifierName" ref="request.header.identifier"> <Allow ref="request.header.allowquota">100</Allow> </Identifier>
| デフォルト: | なし | 
| 要否: | 必須 | 
| 型: | 整数 | 
属性
| 属性 | 説明 | デフォルト | 要否 | 
|---|---|---|---|
| ref | ターゲット Quota ポリシーの割り当て数の変更が含まれたフロー変数。 | なし | 省略可 | 
<Quota> / <Identifier> / <Class> 要素
割り当てカウンタを更新するクラスを指定します。Quota ポリシーでクラスを使用する方法の詳細については、Quota ポリシーをご覧ください。
<Identifier name="_default">
   <Class ref="request.header.classIdentifier">
     <Allow>200</Allow>
   </Class>
</Identifier>| デフォルト: | なし | 
| 要否: | 省略可 | 
| 型: | なし | 
属性
| 属性 | 説明 | デフォルト | 要否 | 
|---|---|---|---|
| ref | 更新する割り当てクラスを含むフロー変数を参照します。 | なし | 省略可 | 
エラー リファレンス
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 修正 | 
|---|---|---|---|
| policies.resetquota.InvalidRLPolicy | 500 | ResetQuotaポリシーの<Quota>要素で指定されたQuotaポリシーは、API プロキシで定義されていないため、フロー中に使用できません。<Quota>要素は必須です。この要素は、ResetQuotaポリシーを使用してカウンタを更新する必要があるターゲットQuotaポリシーを識別します。 | build | 
| policies.resetquota.FailedToResolveAllowCountRef | なし | ポリシーの <Allow>要素の許可カウントを含む変数への参照を値に解決できません。この要素は必須であり、割り当てカウンタを減らす量を指定します。 | build | 
| policies.resetquota.FailedToResolveRLPolicy | 500 | <Quota>要素のref属性によって参照される変数は解決できません。 | build | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 修正 | 
|---|---|---|
| InvalidCount | ResetQuotaポリシーの<Allow>要素に指定されたカウント値が整数でない場合、API プロキシのデプロイは失敗します。 | build |