コンテンツにスキップ
Kong Logo | Kong Docs Logo
  • ドキュメント
    • API仕様を確認する
      View all API Specs すべてのAPI仕様を表示 View all API Specs arrow image
    • ドキュメンテーション
      API Specs
      Kong Gateway
      軽量、高速、柔軟なクラウドネイティブAPIゲートウェイ
      Kong Konnect
      SaaSのエンドツーエンド接続のための単一プラットフォーム
      Kong AI Gateway
      GenAI インフラストラクチャ向けマルチ LLM AI Gateway
      Kong Mesh
      Kuma と Envoy をベースにしたエンタープライズサービスメッシュ
      decK
      Kongの構成を宣言型で管理する上で役立ちます
      Kong Ingress Controller
      Kubernetesクラスタ内で動作し、Kongをプロキシトラフィックに設定する
      Kong Gateway Operator
      YAMLマニフェストを使用してKubernetes上のKongデプロイメントを管理する
      Insomnia
      コラボレーティブAPI開発プラットフォーム
  • Plugin Hub
    • Plugin Hubを探索する
      View all plugins すべてのプラグインを表示 View all plugins arrow image
    • 機能性 すべて表示 View all arrow image
      すべてのプラグインを表示
      AI's icon
      AI
      マルチ LLM AI Gatewayプラグインを使用してAIトラフィックを管理、保護、制御する
      認証's icon
      認証
      認証レイヤーでサービスを保護する
      セキュリティ's icon
      セキュリティ
      追加のセキュリティレイヤーでサービスを保護する
      トラフィック制御's icon
      トラフィック制御
      インバウンドおよびアウトバウンドAPIトラフィックの管理、スロットル、制限
      サーバーレス's icon
      サーバーレス
      他のプラグインと組み合わせてサーバーレス関数を呼び出します
      分析と監視's icon
      分析と監視
      APIとマイクロサービストラフィックを視覚化、検査、監視
      変革's icon
      変革
      Kongでリクエストとレスポンスをその場で変換
      ログ記録's icon
      ログ記録
      インフラストラクチャに最適なトランスポートを使用して、リクエストと応答データをログに記録します
  • サポート
  • コミュニティ
  • Kongアカデミー
デモを見る 無料トライアルを開始
Kong Gateway
3.7.x
  • Home icon
  • Kong Gateway
  • Reference
  • Expressions Language
  • 表現言語について
report-issue問題を報告する
  • Kong Gateway
  • Kong Konnect
  • Kong Mesh
  • Kong AI Gateway
  • Plugin Hub
  • decK
  • Kong Ingress Controller
  • Kong Gateway Operator
  • Insomnia
  • Kuma

  • ドキュメント投稿ガイドライン
  • 3.10.x (latest)
  • 3.9.x
  • 3.8.x
  • 3.7.x
  • 3.6.x
  • 3.5.x
  • 3.4.x (LTS)
  • 3.3.x
  • 2.8.x (LTS)
  • アーカイブ (2.6より前)
  • 導入
    • Kong Gatewayの概要
    • サポート
      • バージョンサポートポリシー
      • サードパーティの依存関係
      • ブラウザサポート
      • 脆弱性パッチ適用プロセス
      • ソフトウェア部品表
    • 安定性
    • リリースノート
    • 互換性のない変更
      • Kong Gateway 3.7.x
      • Kong Gateway 3.6.x
      • Kong Gateway 3.5.x
      • Kong Gateway 3.4.x
      • Kong Gateway 3.3.x
      • Kong Gateway 3.2.x
      • Kong Gateway 3.1.x
      • Kong Gateway 3.0.x
      • Kong Gateway 2.8.x またはそれ以前
    • キーコンセプト
      • サービス
      • ルート
      • コンシューマ
      • アップストリーム
      • プラグイン
      • コンシューマグループ
    • Kongの仕組み
      • トラフィックのルーティング
      • ロードバランシング
      • ヘルスチェックとサーキットブレーカー
    • 用語集
  • Kongを始めましょう
    • Kongを入手
    • サービスとルート
    • Rate Limiting
    • プロキシキャッシュ
    • Key Authentication
    • ロードバランシング
  • Kongのインストール
    • 概要
    • Kubernetes
      • 概要
      • Kong Gatewayのインストール
      • Admin APIを構成する
      • Kong Managerのインストール
    • Docker
      • docker runの使用
      • 独自の Docker イメージをビルドする
    • Linux
      • Amazon Linux
      • Debian
      • Red Hat
      • Ubuntu
    • インストール後
      • データストアの設定
      • エンタープライズライセンスを適用する
      • Kong Managerを有効にする
  • 本番環境のKong
    • デプロイメントトポロジー
      • 概要
      • ハイブリッドモード
        • 概要
        • Kong Gatewayをハイブリッドモードでデプロイする
      • DBレスデプロイメント
      • 伝統的な
    • 実行中のKong
      • 非rootユーザーとしてKongを実行する
      • Admin APIの保護
      • systemdの使用
    • アクセス制御
      • Kong Gatewayを安全に起動する
      • プログラムによる管理者の作成
      • RBACを有効にする
    • ライセンス
      • 概要
      • ライセンスのダウンロード
      • エンタープライズライセンスのデプロイ
      • ライセンス APIの使用
      • ライセンス使用状況の監視
    • ネットワーキング
      • デフォルトポート
      • DNSに関する考慮事項
      • ネットワークとファイアウォール
      • フォワードプロキシ経由のCP/DP通信
      • PostgreSQL TLS
        • PostgreSQL TLSの構成
        • PostgreSQL TLSのトラブルシューティング
    • Kong設定ファイル
    • 環境変数
    • KongからのウェブサイトとAPIの提供
    • モニタリング
      • 概要
      • Prometheus
      • StatsD
      • Datadog
      • ヘルスチェックプローブ
    • トレーシング
      • 概要
      • カスタムトレースエクスポーターの記述
      • トレース APIリファレンス
    • リソースサイジングのガイドライン
    • セキュリティ更新プロセス
    • ブルーグリーンデプロイメント
    • カナリアデプロイメント
    • クラスタリングリファレンス
    • パフォーマンス
      • パフォーマンステストベンチマーク
      • パフォーマンスベンチマークの確立
      • Brotli圧縮によるパフォーマンスの向上
    • ログとデバッグ
      • ログ参照
      • 動的ログレベルの更新
      • ゲートウェイログのカスタマイズ
      • デバッグリクエスト
      • AI Gateway分析
    • gRPCサービスを構成する
    • Expressionsルーターを使用する
    • アップグレードと移行
      • Kong Gateway 3.x.xのアップグレード
      • バックアップと復元
      • アップグレード戦略
        • デュアルクラスターのアップグレード
        • インプレースアップグレード
        • ブルーグリーンアップグレード
        • ローリングアップグレード
      • 2.8 LTS から 3.4 LTS へのアップグレード
      • OSS から Enterprise への移行
      • Cassandra から PostgreSQL への移行ガイドライン
      • 互換性のない変更
  • Kong Gateway Enterprise
    • 概要
    • シークレット管理
      • 概要
      • はじめる
      • シークレットローテーション
      • 高度な使用法
      • バックエンド
        • 概要
        • 環境変数
        • AWS Secrets Manager
        • Azure Key Vault
        • Google Cloud Secret Manager
        • HashiCorp Vault
      • ハウツー
        • AWS Secrets Manager によるデータベースの保護
      • 参照形式
    • 動的なプラグインの順序
      • 概要
      • 動的プラグインの注文を開始する
    • 監査ログ
    • キーリングとデータ暗号化
    • ワークスペース
    • コンシューマグループ
    • イベントフック
    • データプレーン(DP)のレジリエンスの構成
    • コントロールプレーン(CP)の停止管理について
    • FIPS 140-2
      • 概要
      • FIPS 準拠パッケージのインストール
      • FIPS 140-2準拠のプラグイン
    • AWS IAMを使用してKong Gateway Amazon RDSデータベースを認証する
    • 署名付き Kong イメージの署名の検証
    • 署名付き Kong イメージのビルド来歴を確認
  • Kong AI Gateway
    • 概要
    • AI Gatewayを使ってみる
    • LLM プロバイダー統合ガイド
      • OpenAI
      • Cohere
      • Azure
      • Anthropic
      • Mistral
      • Llama2
    • AI Gateway分析
    • AI Gatewayプラグイン
  • Kong Manager
    • 概要
    • Kong Managerを有効にする
    • Kong Managerの使用を開始する
      • サービスとルート
      • Rate Limiting
      • プロキシキャッシュ
      • コンシューマによる認証
      • ロードバランシング
    • 認証と承認
      • 概要
      • スーパー管理者を作成する
      • ワークスペースとチーム
      • パスワードと RBAC トークンのリセット
      • Basic Auth
      • LDAP
        • LDAPの設定
        • LDAP サービスディレクトリマッピング
      • OIDC
        • OIDC を構成する
        • OIDC 認証済みグループマッピング
        • 以前の構成からの移行
      • セッション
      • RBAC
        • 概要
        • RBACを有効にする
        • ロールと権限を追加する
        • ユーザーの作成
        • 管理者の作成
    • ネットワーク構成
    • ワークスペース
    • コンシューマグループを作成する
    • メールの送信
    • トラブルシューティング
  • カスタムプラグインの開発
    • 概要
    • はじめる
      • 導入
      • プラグインプロジェクトの設定
      • プラグインテストを追加
      • プラグイン設定を追加
      • 外部サービスの利用
      • プラグインのデプロイ
    • ファイル構成
    • カスタムロジックの実装
    • プラグインの設定
    • データストアへのアクセス
    • カスタムエンティティの保存
    • カスタムエンティティのキャッシュ
    • Admin APIの拡張
    • テストを書く
    • インストールと配布
    • Proxy-Wasmフィルタ
      • proxy-wasm フィルターの作成
      • proxy-wasm フィルタの設定
    • プラグイン開発キット
      • 概要
      • kong.client
      • kong.client.tls
      • kong.cluster
      • kong.ctx
      • kong.ip
      • kong.jwe
      • kong.log
      • kong.nginx
      • kong.node
      • kong.plugin
      • kong.request
      • kong.response
      • kong.router
      • kong.service
      • kong.service.request
      • kong.service.response
      • kong.table
      • kong.tracing
      • kong.vault
      • kong.websocket.client
      • kong.websocket.upstream
    • 他の言語のプラグイン
      • Go
      • Javascript
      • Python
      • コンテナ内でプラグインを実行する
      • 外部プラグインのパフォーマンス
  • Kong Plugins
    • 概要
    • 認証リファレンス
    • 複数の認証プラグインを許可する
    • プラグインキューイング
      • 概要
      • プラグインキューイングリファレンス
  • Admin API
    • 概要
    • 宣言型構成
    • エンタープライズ API
      • インフォメーションルート
      • ヘルスルート
      • タグ
      • ルートのデバッグ
      • サービス
      • ルート
      • コンシューマ
      • プラグイン
      • 証明書
      • CA 証明書
      • SNI
      • アップストリーム
      • ターゲット
      • 金庫
      • 鍵
      • フィルターチェーン
      • ライセンス
      • ワークスペース
      • RBAC
      • アドミン
      • コンシューマグループ
      • イベントフック
      • キーリングとデータ暗号化
      • 監査ログ
      • ステータスAPI
    • オープンソースAPI
  • リファレンス
    • kong.conf
    • Nginxディレクティブの挿入
    • CLI
    • キー管理
    • 表現言語
      • 概要
      • 言語リファレンス
      • パフォーマンスの最適化
    • Rate Limitingライブラリ
    • Webアセンブリ
    • FAQ
enterprise-switcher-icon 次に切り替える: OSS
On this pageOn this page
  • 式言語について
  • 重要な概念
  • ルートの実行方法
  • 式ルーターの例(HTTP)
    • 接頭辞ベースのパスマッチング
    • 正規表現ベースのパスマッチング
    • 大文字と小文字を区別しないパスの照合
    • ヘッダー値による一致
    • 正規表現キャプチャ
  • 式ルーターの例(TCP、TLS、UDP)
    • 送信元IPと宛先ポートによる一致
    • SNIによる一致(TLSルートの場合)
  • 詳細情報
旧バージョンのドキュメントを参照しています。 最新のドキュメントはこちらをご参照ください。

表現言語について

バージョン3.0のリリースにより、Kong Gatewayにはドメイン固有の式言語を使用するルールベースのエンジンが含まれるようになりました。式は、3.0より前のルーターでは不可能だった複雑なルーティングロジックの定義など、 タスクを実行するために使用できます。 このガイドは式言語のリファレンスであり、その使用方法について説明します。

式言語について

表現言語は、厳密に型指定されたドメイン固有言語(DSL)です。 これにより、さまざまな入力データに対する比較演算を定義できます。 比較結果は論理演算と組み合わせることができます。これにより、実行時のマッチングパフォーマンスを良好に保ちながら、複雑なルーティングロジックを記述できます。

重要な概念

  • フィールド: フィールドは受信リクエストから抽出された値を含みます。たとえば リクエストパスまたはヘッダーフィールドの値です。フィールド値がない場合も あります。フィールド値が存在しない場合、述部は演算子に関係なく、常にfalse を生成します。フィールドは常に述部の左側に表示されます。
  • 定数値: 定数値は、提供された演算子に基づいて、フィールドが比較 されるものです。定数値は常に述部の右側に表示されます。
  • 演算子: 演算子は、提供された定数値に対して、フィールドで実行したい比較アクションを定義します。 演算子は常に述部の中間、フィールドと定数値の間に 表示されます。
  • 述部: 述部は、提供された演算子とを使用して、フィールドを事前定義された値と比較します。フィールドが比較に 合格した場合はtrueを返し、合格しなかった場合はfalseを返します。
  • ルート: 論理演算子と組み合わせた1つまたは複数の述部です。
  • ルーター: ルーターは、受信リクエストと照合してすべて評価されるルートの集まりです。 一致するものが見つかるまで続きます。
  • 優先度: ルーターの評価順序を定義する正の整数です。 優先度が高いほどルートの評価順序が早くなります。同じルーター内で2つのルートの優先度が重複する場合、評価順序は定義されません。

述部の構造

述部は、次のように構成されます。

http.path ^= "/foo/bar"

この述部の例は、次の構造に従っています。

  • http.path:フィールド
  • ^=:演算子
  • "/foo/bar":定数値

ルートの実行方法

実行時に、Kong GatewayがHTTPおよびストリーム(TCP、TLS、UDP)サブシステム用に2つの個別のルーターを構築します。 適切なpriorityフィールドが設定されたルートが各ルーターに挿入されます。ルーターは 構成されたルートの変更に応じて段階的に更新されます。

リクエスト/接続が入ると、Kong Gatewayは構成したルートに必要なフィールドを調べます。 そして、これらのフィールドの値をルーターの実行コンテキストに提供します。これは構成されたルートに対して 降順で評価されます(priority番号の大きいルートが最初に評価されます)。

ルートが一致するとすぐに、ルーターはマッチングを停止し、一致したルートを使用して現在のリクエスト/接続を処理します。

ルーターのマッチングフロー

図1: Kong Gatewayのルート実行方法の図。この図には、Kong Gatewayが式に一致するルートを選択してから、最高の優先度と一致するルートを選択することが示されています。

式ルーターの例(HTTP)

接頭辞ベースのパスマッチング

接頭辞ベースのパスマッチングは、ルーティングで最も一般的に使用される方法の 1 つです。たとえば、パスが/foo/barで始まるHTTPリクエストを一致させたい場合は、次のルートを記述できます。

http.path ^= "/foo/bar"

正規表現ベースのパスマッチング

HTTPリクエストパスを正規表現と照合する場合は、次のルートを記述できます。

http.path ~ r#"/foo/bar/\d+"#

大文字と小文字を区別しないパスの照合

パスマッチングを実行するときに大文字と小文字を区別しない場合は、フィールドにlower()修飾子を付けると、 常に小文字の値を返すようになります。

lower(http.path) == "/foo/bar"

これは、たとえば、パス/foo/barと/FOO/bArを持つリクエストと一致します。

ヘッダー値による一致

受信リクエストをヘッダーX-Fooの値で照合する場合は、次の手順を実行します。

http.headers.x_foo ~ r#"bar\d"#

X-Fooに複数のヘッダー値があり、クライアントが値が異なる X-Fooヘッダーを1つ以上送信した場合、上の例では次の 各 インスタンスの値が 正規表現r#"bar\d"#と確実に一致します。これは「全」スタイルマッチングと呼ばれ、フィールド値の各インスタンスが trueを返すために、述部の比較に合格する必要があります。これはデフォルトの動作です。

この動作を望まない場合は、”any” スタイルのマッチングをオンにすると、 いずれかの値が比較に合格するとすぐ、述語に対してtrueを返します。

any(http.headers.x_foo) ~ r#"bar\d"#

これは、http.headers.x_fooの値が正規表現のr#"bar\d"#と一致するとすぐにtrueを返します。

さまざまな変換を連結できます。以下も、 大文字と小文字を区別しないマッチングを実行する有効なユースケースです。

any(lower(http.headers.x_foo)) ~ r#"bar\d"#

正規表現キャプチャ

正規表現キャプチャグループは、後でプラグインで利用可能になる任意の 正規表現操作で定義できます。現在のところ、これはhttp.pathフィールドでのみサポートされています。

http.path ~ r#"/foo/(?P<component id="sl-md0000000">.+)"#

componentの一致した値は、 Request Transformer Advancedのようなプラグインで、後から利用できるようになります。

式ルーターの例(TCP、TLS、UDP)

送信元IPと宛先ポートによる一致

net.src.ip in 192.168.1.0/24 && net.dst.port == 8080

上記は192.168.1.0/24サブネット内のすべてのクライアントを照合します。(Kongがリッスンする)宛先ポートは8080です。 IPv6アドレスもサポートされます。

SNIによる一致(TLSルートの場合)

tls.sni =^ ".example.com"

これは、.example.com SNIで終わるすべてのTLS接続に一致します。

詳細情報

  • 言語リファレンス - 式ルーターの基本に慣れたら、このドキュメントを参照して、式言語が提供するすべてを理解してください。
  • 式を使用してルートを構成する方法。- 式を使用してルートを構成する方法と、使用可能なフィールドをご紹介します。
  • パフォーマンス - 式ルーターを使う場合のパフォーマンス特性と、 ルートを最適化する方法について理解してください。
  • 式リポジトリ
Thank you for your feedback.
Was this page useful?
情報が多すぎる場合 close cta icon
Kong Konnectを使用すると、より多くの機能とより少ないインフラストラクチャを実現できます。月額1Mリクエストが無料。
無料でお試しください
  • Kong
    APIの世界を動かす

    APIマネジメント、サービスメッシュ、イングレスコントローラーの統合プラットフォームにより、開発者の生産性、セキュリティ、パフォーマンスを大幅に向上します。

    • 製品
      • Kong Konnect
      • Kong Gateway Enterprise
      • Kong Gateway
      • Kong Mesh
      • Kong Ingress Controller
      • Kong Insomnia
      • 製品アップデート
      • 始める
    • ドキュメンテーション
      • Kong Konnectドキュメント
      • Kong Gatewayドキュメント
      • Kong Meshドキュメント
      • Kong Insomniaドキュメント
      • Kong Konnect Plugin Hub
    • オープンソース
      • Kong Gateway
      • Kuma
      • Insomnia
      • Kongコミュニティ
    • 会社概要
      • Kongについて
      • お客様
      • キャリア
      • プレス
      • イベント
      • お問い合わせ
  • 利用規約• プライバシー• 信頼とコンプライアンス
© Kong Inc. 2025