サポートされているフィールドとオペレーター
ロードバランシングルールでサポートされているフィールドは、Cloudflareがロードバランサーを通過するトラフィックをプロキシしているかどうかによって異なります。
誤ったフィールドセットを使用すると、予期しない動作が発生する可能性があります。最良の結果を得るためには、トラフィックのプロキシステータスに関連付けられたフィールドを使用してください。
また、一部のロードバランシングルールフィールドは、ロードバランシング式で説明されているように、式ビルダーで利用可能ですが、他のフィールドは手動で、APIまたは式エディタを介してのみ構成できます。
以下の表を参照して、式ビルダーで利用可能なフィールドがどのようにグループ化されているかを確認してください。
| フィールドセット | 式ビルダー内のセクション | 説明 |
|---|---|---|
| プロキシに関係なくサポートされているフィールド | BOTH | ロードバランサーのプロキシステータスに関係なく常にアクセス可能な値。 |
| プロキシ専用フィールド | PROXIED ONLY | ロードバランサーがプロキシされているときにのみアクセス可能な値。 |
| 非プロキシ専用フィールド | NON-PROXIED ONLY | ロードバランサーがプロキシされていないとき(DNS専用トラフィック)のみアクセス可能な値。 |

トラフィックのプロキシステータスに関係なく、ロードバランシングルールは以下のフィールドの値にアクセスできます:
| フィールド | 式ビルダー内の名前 | 説明 |
|---|---|---|
cf.load_balancer.nameBytes | Load Balancer Name | これらのルールを実行しているロードバランサーの名前を表します。 例の値:
|
cf.load_balancer.regionBytes | Load Balancer Region | リクエストを処理しているデータセンターの地域名を提供します。 例の値:
|
ip.srcIP address | IP Source Address | プロキシされている場合、このフィールドはクライアントのTCP IPアドレスを提供します。これは、 非プロキシ(DNS専用)の場合、このフィールドはECSソースアドレスを提供します。利用できない場合は、クライアントリゾルバのIPアドレスを提供します。 非推奨警告:将来的には、このフィールドは非プロキシリクエストに対して常にクライアントリゾルバのIPアドレスに設定されます。ECSの存在を確認し、ECS IPを使用するには、フィールド 例の値:
|
トラフィックがCloudflareを通じてプロキシされている場合、プロキシに関係なくサポートされているフィールドに加えて、以下のフィールドにアクセスできます:
これらのフィールドの多くは、ルール言語のドキュメントから参照されています。
| フィールド | 式ビルダー内の名前 | 説明 |
|---|---|---|
http.cookieString | (手動入力のみ) | クッキー全体を文字列として表します。 例の値:
|
http.hostString | (手動入力のみ) | 完全なリクエストURIで使用されるホスト名を表します。 例の値:
|
http.refererString | (手動入力のみ) | HTTP Refererリクエストヘッダーを表し、現在リクエストされているページにリンクしているウェブページのアドレスを含みます。 例の値:
|
http.request.headersMap<Array<String>> | Header | HTTPリクエストヘッダーをマップ(または連想配列)として表します。 連想配列のキーは、小文字に変換されたHTTPリクエストヘッダーの名前です。 繰り返しヘッダーがある場合、配列にはリクエストに表示される順序で含まれます。 デコード:デコードは行われません
例:
例の値:
|
http.request.methodString | Request Method | HTTPメソッドを表し、大文字の文字列として返されます。 例の値:
|
http.request.timestamp.secInteger | Timestamp | Cloudflareがリクエストを受信した時刻を表し、Unix時間で秒単位で表現されます。この値は10桁の長さです。 例の値:
|
http.request.uriString | URI | リクエストのURIパスとクエリ文字列を表します。 例の値:
|
http.request.uri.argsMap<Array<String>> | (手動入力のみ) | リクエストに関連するHTTP URI引数をマップ(連想配列)として表します。 引数が繰り返される場合、配列にはリクエストに表示される順序で複数の項目が含まれます。 値は前処理されず、リクエストで使用された元のケースが保持されます。 デコード:デコードは行われません
例:
例の値:
|
http.request.uri.args.namesArray<String> | (手動入力のみ) | HTTP URIクエリ文字列内の引数の名前を表します。名前は前処理されず、リクエストで使用された元のケースが保持されます。 名前が繰り返される場合、配列にはリクエストに表示される順序で複数の項目が含まれます。 デコード:デコードは行われません
例:
例の値:
|
http.request.uri.args.valuesArray<String> | (手動入力のみ) | HTTP URIクエリ文字列内の引数の値を表します。値は前処理されず、リクエストで使用された元のケースが保持されます。リクエスト内の順序で表示されます。 重複した値は複数回リストされます。 デコード:デコードは行われません
例:
例の値:
|
http.request.uri.pathString | URI Path | リクエストのURIパスを表します。 例の値:
|
http.request.uri.queryString | URI Query | 全体のクエリ文字列を表し、 例の値:
|
http.request.versionString | HTTP Version | 使用されるHTTPプロトコルのバージョンを表します。このフィールドは、異なるバージョンに対して異なるチェックが必要な場合に使用します。 例の値:
|
トラフィックがCloudflareを通じてプロキシされていない場合、プロキシに関係なくサポートされているフィールドに加えて、以下のフィールドにアクセスできます:
| フィールド | 式ビルダーでの名前 | 説明 |
|---|---|---|
dns.qry.nameBytes | クエリ名 | 要求されたクエリ名を表します。 例の値:
|
dns.qry.name.lenInteger | クエリ名の長さ | クエリ名のバイト数での長さを表します。 例の値:
|
dns.qry.quBoolean | 質問 |
|
dns.qry.typeInteger | クエリタイプ | DNSクエリタイプの数値を表します。 例の値:
|
dns.rr.opt.clientBoolean | (手動入力のみ) |
|
dns.rr.opt.client.addrString | (手動入力のみ) | 存在する場合、このフィールドはDNSリクエストと共に送信されたECSアドレスを表します。 例の値:
|
-
比較演算子 は、式で定義された値が実際のHTTPリクエスト値とどのように関連する必要があるかを指定し、式が真を返すための条件を定義します。
-
論理演算子 は、2つの式を組み合わせて複合式を形成し、優先順位を使用して式がどのように評価されるかを決定します。
-
グルーピングシンボル は、式を整理し、演算子の優先順位を強制し、式をネストすることを可能にします。
例や使用法については、演算子とグルーピングシンボルを参照してください。