
概要
ターゲットの Quota ポリシーで許可されている残りのリクエスト数を動的に変更します。このポリシーは通常、割り当てカウントのリセットを待たずに、ターゲットの Quota ポリシーの現在の割り当てカウントを減らす場合に使用します。
たとえば、ターゲットの Quota ポリシーで 1 週間のリクエスト数が 1,000 件に制限されているときに、週の 2 日目に、デベロッパーがこの上限に達したとします。Reset Quota ポリシーを使用して、割り当てカウンタから 500 を引き、週の残りの日数に追加で 500 件のリクエストを許可します。週末に Quota ポリシーがリセットされるので、デベロッパーの週のリクエスト数は 1,000 件に戻ります。
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> 要素
name
属性に加えて、管理 UI プロキシ エディタのポリシーに別のわかりやすい名前でラベルを付けるために使います。
<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 |
更新する割り当てクラスを含むフロー変数を参照します。 |
なし | 省略可 |
エラー リファレンス
Reset Quota ポリシータイプは、以下のエラーコードを定義します。エラー処理の手順については、障害の処理をご覧ください。
エラーコード | メッセージ |
---|---|
InvalidRLPolicyDefinition | 無効なレート制限ポリシー {0} |
NoRLPolicy | Quota ポリシー {0} が添付されていません。 |
InvalidCount | {2} の識別子 {1} のカウント値 {0} が無効です |
FailedToResolveAllowCountRef | {2} の識別子 {1} の allow カウント参照 {0} を解決できませんでした |