ResetQuota ポリシー

概要

ターゲットの 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

ポリシーの内部名。name 属性の値には、文字、数字、スペース、ハイフン、アンダースコア、ピリオドを使用できます。255 文字を超える値を指定することはできません。

必要に応じて、管理 UI プロキシ エディタで <DisplayName> 要素を使用してポリシーに別のわかりやすい名前でラベルを付けます。

なし 必須
continueOnError

ポリシーが失敗した場合にエラーを返すには、false に設定します。これはほとんどのポリシーで想定される動作です。

ポリシーが失敗してもフロー実行を続行するには、true に設定します。

false 省略可
enabled

ポリシーを適用するには true に設定します。

ポリシーを無効にするには false に設定します。その場合、ポリシーはフローに接続されていているとしても適用されません。

true 省略可
async

この属性は非推奨となりました。

false 非推奨

<DisplayName> 要素

name 属性に加えて、管理 UI プロキシ エディタのポリシーに別のわかりやすい名前でラベルを付けるために使います。

<DisplayName>Policy Display Name</DisplayName>
デフォルト:

なし

この要素を省略した場合、ポリシーの name 属性の値が使用されます

要否: 省略可
型: 文字列

<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 ポリシーの名前を含むフロー変数。refname の両方を指定すると、ref が優先されます。ランタイムに ref が解決されない場合は、name が使用されます。 なし 省略可

<Quota> / <Identifier> 要素

ターゲット Quota ポリシーで <Identifier> タグが指定されている場合にカウンタを一意に識別する変数。

    <Quota name="quotaName">
       <Identifier name="identifierName" ref="request.header.identifier">
          <Allow>100</Allow>
       </Identifier>
    </Quota>
    
デフォルト: なし
必須?: 必須
型: String

属性

属性 説明 デフォルト 必須?
name

ターゲット Quota ポリシーのカウント ID の名前を指定します。<Identifier> タグを使用していない Quota ポリシーの場合は、_default を指定します。

なし 省略可
ref

ターゲット Quota ポリシーのカウント ID の名前を含むフロー変数。refname の両方を指定すると、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 ポリシーでクラスを使用する方法については、割り当てポリシーをご覧ください。

    <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} を解決できませんでした

スキーマ

関連トピック

Quota ポリシー