要求のスロットル
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecoreに対して行われるリクエストの数を調整できます。Services.Client. 次のようにします。
-
要求の頻度を制限するため。
-
ユーザーの種類 (無料と有料など) に基づいて要求を処理するために異なる戦略を使用する。
-
高頻度の要求攻撃を防ぐため。
このトピックでは、次の内容について説明します。
スロットル戦略
スロットル戦略
Sitecore。Services.Clientは、時間間隔あたりの要求数を制限するために使用できるAPIを提供します。既定では、Sitecoreです。Services.Clientには、次の2つのスロットル戦略があります。
-
スライディングウィンドウ – 時間間隔と、その間隔で許可されるリクエストの数を指定します。Sitecoreは、それ以上のリクエストをスロットリングします。
-
コンポジット – 複数の戦略を1つにまとめます。
ストラテジー自体を含めると循環参照が作成されるため、含めることはできません。
たとえば、さまざまなパラメーターを持つ多数のスライディング ウィンドウ戦略を構成できます。最初のものは短い時間期間(1〜5秒)後にリクエストを拒否し、2番目のものははるかに長い時間(24時間)後にリクエストを拒否します。
スケーリングされた環境では、Sitecoreはインスタンス間でストラテジーの状態を共有しません。ストラテジーには、各インスタンスで独自の状態があります。
スロットルはデフォルトで無効になっています。調整を有効にするには、次の方法でApp_Config\Sitecore\Services.Client Sitecore.Services.Client.configファイルにパッチを適用します。
-
<setting name="Sitecore.Services.IsThrottleEnabled" value="false" /> の値をtrueに変更します。
ストラテジーは、masterデータベースの/sitecore/system/Settings/Services/Throttle Strategiesにあります。
ストラテジーは、Throttle Strategiesのすぐ下に追加することも、サブフォルダー(Strategy Folder)を作成して、そのサブフォルダーにストラテジーを追加することもできます。
ストラテジーの構成
ストラテジーの構成
各戦略アイテムのCommon OptionsセクションのTypeフィールドに値を指定する必要があります。値は、ストラテジを実装するクラスのフルネームです (例:Sitecore.Services.Infrastructure.Throttle.Strategies.SlidingWindowThrottleStrategy, Sitecore.Services.Infrastructure)。
ストラテジアイテムには、ストラテジタイプに依存する特定のパラメータセットが含まれています。パラメータは、ストラテジーの動作を指定します。
たとえば、スライディング ウィンドウ戦略の場合、次のようになります。

たとえば、複合ストラテジーの場合、次のようになります。

ストラテジの適用
ストラテジの適用
ストラテジーは、次の3つの方法で適用できます。
-
APIキーを使用します。
-
APIコントローラーのメソッド (属性ベースのスロットル) を使用します。
-
APIコントローラーを使用します。
これらの方法は、任意の組み合わせで使用できます。Sitecoreは、戦略の成果を組み合わせます。
Sitecoreは、リクエストに2つ以上の戦略を適用するときに、次のルールを使用します。
-
同じ戦略を複数の方法で指定した場合、Sitecoreはそれを一度だけ適用します。
-
メソッドまたはコントローラーに複数のストラテジーを指定すると、Sitecoreはストラテジーを組み合わせます。
同じストラテジを複数回使用すると、ストラテジーは状態を共有します。たとえば、Time Span = 1000 msパラメーターとAllowed Number of Requests = 5 requestsパラメーターを使用してスライディング ウィンドウ戦略を指定し、それを2つのサービスに適用すると、1000ミリ秒のウィンドウで可能な要求は合計で5つだけになります。
Sitecoreがストラテジーを適用したときにエラーが発生した場合、リクエストは内部サーバー エラー (コード500) を受け取ります。
APIキーの使用
APIキーを使用してストラテジーを適用すると、SitecoreはストラテジーをすべてのSitecoreに適用します。このAPIキーを使用するServices.Client要求。APIキーとOData APIキーを使用して、戦略を適用できます。
例えば:
この例では、RequiredApiKey 属性が定義されており、このコントローラーにアクセスするにはAPIキーが必須です。Sitecoreは、APIキーが有効で、使用できる状態にあるかどうかを確認します。キーが有効な場合、Sitecoreは定義された任意のストラテジーをリクエストに適用します。
方針は、APIキー明細のDataセクションのThrottle Strategy項目で定義します。
APIコントローラー メソッドの使用
APIコントローラーメソッドにストラテジーを適用するには、コントローラーを定義し、ストラテジーをアクションに直接適用します。例えば:
コントローラーの使用
コントローラーにストラテジーを適用するには、コントローラーを定義してから、コントローラーのクラスにストラテジーを適用します。例えば:
Sitecore、ThrottledOnControllerControllerコントローラーの任意のメソッドに07 On Controllerストラテジーを適用します。