表現
ロードバランシングルールは、2種類の表現を使用します:
-
シンプルな表現は、HTTPリクエストの値を表現で定義された値と比較します。シンプルな表現は、比較演算子(等しいや未満など)が存在することで識別されます。
-
複合表現は、2つ以上のシンプルな表現を1つの表現に組み合わせます。複合表現には、論理演算子(かつ、またはなど)が含まれます。複合表現を使用することで、特定のユースケースに対して高い精度と正確性でルールを調整できます。
シンプルな表現は、3つの要素で構成されています:
- HTTPリクエストのプロパティを表すフィールド。
- Cloudflareが実際のリクエスト値と比較するためのそのフィールドの代表的な値。
- 演算子が
trueを返すために、表現で定義された値がリクエストからの実際の値とどのように関連するかを指定する比較演算子。
比較演算子がtrueを返すと、リクエストは表現に一致します。
この例の表現は、リクエストURIパスが/contentを含むときにtrueを返します:
(http.request.uri.path contains "/content")一般的に、シンプルな表現はこのパターンを使用します:
<field> <operator> <value>詳細については、サポートされているフィールドと演算子を参照してください。
複合表現は、2つ以上の表現を組み合わせるために論理演算子(かつ、またはなど)を使用します。複合表現を使用すると、1つの表現内で複雑な文を構築できます。
以下の例の表現は、HTTPリクエストURIパスが/contentを含み、クエリ文字列がwebserverを含むときにtrueを返します:
(http.request.uri.path contains "/content")and (http.request.uri.query contains "webserver")一般的に、複合表現はこのパターンを使用します:
<expression> <logical operator> <expression>複合表現は論理演算子のオペランドになることができます。これにより、複数の演算子が多くの個別の表現から複合表現を構築できます。
詳細については、サポートされているフィールドと演算子を参照してください。
Expression Builderのビジュアルインターフェースを使用すると、フィールド名や構文を気にせずに表現を構築できます。
対照的に、Expression Editorはテキストのみですが、ビルダーでは利用できない高度な機能をサポートしています。
複合表現は、Expression Builderのビジュアルインターフェースで表示されるときにスキャンしやすく、Expression Previewはより高度な表現を書くための学習に役立つ優れたリファレンスです。
このExpression Builderのスクリーンショットは、前述の例の複合表現を示しています。複合表現は、Expression Builderのビジュアルインターフェースで表示されるときにスキャンしやすくなります。

Expression Previewは、テキストで表現を表示します:
(http.request.uri.path contains "/content")and (http.request.uri.query contains "webserver")手順については、ロードバランシングルールの作成を参照してください。
Expression Editorは、ロードバランシング表現を作成するためのテキスト専用インターフェースです。Expression Builderの視覚的なシンプルさは欠けていますが、グルーピングシンボル(括弧)のサポートなどの高度な機能をサポートしています。
TrafficアプリでExpression Editorにアクセスするには、Create Custom RuleダイアログでEdit expressionをクリックします。
ビルダーに戻るには、Use expression builderをクリックします。
ロードバランシングカスタムルールは、IPリスト演算子をサポートしていません。