アクションに設定できる制限項目と処理の一覧
KurocoEdgeのルール追加の画面では、リクエストとレスポンスのそれぞれに対してアクションと呼ばれる動作の設定をします。 アクションには制限項目と処理を設定し、アクセスに対する動作を設定します。
ここではリクエストとレスポンスのそれぞれの動作に対して、設定可能な制限項目と処理の説明をします。
アクションの作成画面
ルール一覧のページで、[追加]をクリックすると新しいルールが作成できます。
リクエスト、レスポンス、のタブでそれぞれのアクションを設定します。
ルール構造の説明
各ルールは、リクエストまたはレスポンスに対して任意の数のアクションを定義できます。アクションは優先順位の高いものから順に処理されます。
各アクションは以下の構成になっています。
項目 | 説明 |
---|---|
指示フラグ | 「実行時に他のアクションをスキップ」を有効にすると、このアクションが実行された場合、これより後のアクションの実行をスキップします。 |
条件/変数 | 実行の処理が実行されるために必要な条件。多くの条件ではデータを取得し、変数として保存して後続の処理で利用できます。条件に一致しない場合は実行に書いた処理は実行されません。 |
実行 | 指定されたリクエスト/レスポンスに適用する実行項目のリスト。項目は最優先順位が高いものから順に適用されます。 |
リクエストとレスポンスのタブは、それぞれ独自の条件と実行処理を持っています。
正規表現でマッチする部分を変数に保存するには(?P<my_variable>.*)
といった書き方をします。
後続の処理で利用する場合は{$my_variable}
のように使用します。
リクエスト
リクエストではKurocoEdgeに送られたリクエストに対する処理を設定します。
ユーザーのリクエストがKurocoEdgeに到達し、バックエンドホストに転送される前の段階です。
条件/変数で選択可能な制限
項目 | 詳細条件の設定項目 | 設定内容 |
---|---|---|
メソッド | リクエストメソッド | リクエストのメソッドを次の中から選択します。
|
IPアドレス | IPアドレスのパターン | ユーザーのIPアドレスが設定した正規表現にマッチするかチェックします。変数付きの正規表現を使用すると、マッチした部分を変数に保存します。 |
位置情報 | タイプ、正規表現 | 位置情報のタイプを次の中から選択し、正規表現で条件を設定します。
|
パス | パスのパターン | リクエストのパスが設定した正規表現にマッチするかチェックします。変数付きの正規表現を使用すると、マッチした部分を変数に保存します。 |
クエリ文字列 | 名前、値のパターン | 指定したクエリパラメータが設定した正規表現にマッチするかチェックします。変数付きの正規表現を使用すると、マッチした部分を変数に保存します。 |
ヘッダー | 名前、値のパターン | 特定のヘッダーが設定した正規表現にマッチするかチェックします。変数付きの正規表現を使用すると、マッチした部分を変数に保存します。 |
クッキー | 名前、値のパターン | 特定のクッキーが設定した正規表現にマッチするかチェックします。変数付きの正規表現を使用すると、マッチした部分を変数に保存します。変数の取得は、クッキーヘッダーを変更する可能性のあるルールを含む、他のルールが適用される前に実行されます。 |
本文 | 本文のパターン | リクエストボディ全体をメモリにバッファリングし、設定した正規表現にマッチする部分を取得します。 大きなリクエストボディに対して実行する際には注意をしてください。本文をバッファリングすると、各リクエストのメモリ消費量が増加します。また、多くのメモリを使用するとエッジサービスの利用料金が発生するため、コストが増加します。 また、許容量を超えることでリクエストが失敗するリスクもあります。この場合にも利用料に計上されます。 |
本文のプレフィックス | バイト数、本文のパターン | リクエストボディの先頭から、指定されたバイト数をメモリにバッファリングし、設定した正規表現にマッチする部分を取得します。大きなリクエストボディであり、取得したいデータがリクエストボディの先頭に近い位置にいる場合、性能向上に対して有効なオプションです |
静的変換 | 名前、値 | ルール内で定義する静的変数です。値には他の条件で取得した変数も使用できます。 |
API変数 | URL | 外部のAPIリクエストを実行し、レスポンスから変数を構築します。JSON形式のレスポンスボディが期待されます。 |
変数の値をチェックする | 値、正規表現 | 左辺に入力された変数を右辺の正規表現でチェックします。取得された変数は、どちら側でも使用できます。 |
実行で選択可能な処理
項目 | 詳細条件の設定項目 | 設定内容 |
---|---|---|
ヘッダー | 操作、名前、値 |
|
クッキー | 操作、名前、値 |
|
ファイルパス(ファイルマネージャー) | ファイルマネージャー | このリクエストを、接続されたKuroco管理パネルのファイルマネージャー内の指定されたパスにあるものを返すようにマッピングします。設定では、このリクエストはデフォルトのオリジンバックエンドに転送されません |
バックエンドURL | ドメイン、Hostヘッダーを上書きする、パス | このリクエストを転送する先を指定します。これにより、同じフロントエンドから複数のバックエンドにリクエストをルーティングできます |
簡易レスポンス | HTTP ステータス、コンテンツタイプ、本文 HTML、ヘッダー | 手動で作成したレスポンスを返します。HTTP ステータス、本文のHTML、ヘッダーを指定します。本文やヘッダーの値にキャプチャされた変数が利用可能です。 |
リダイレクトURL | HTTP ステータス、URL | リダイレクトの方法を選択し、リダイレクト先のURLを入力します。 リダイレクトの方法は以下が設定可能です。
|
レスポンス
レスポンスではKurocoEdgeが返すレスポンスに対する処理を設定します。
ユーザーのリクエストバックエンドホストに転送され、KurocoEdgeがバックエンドホストからのレスポンスを受け取った後の段階です。
条件/変数で選択可能な制限
項目 | 詳細条件の設定項目 | 設定内容 |
---|---|---|
HTTPステータス | HTTPレスポンスコード | HTTPステータスコード(200、404など)が設定した正規表現にマッチするかチェックします。変数付きの正規表現を使用すると、マッチした部分を変数に保存します。 |
ヘッダー | 名前、値のパターン | 特定のヘッダーが設定した正規表現にマッチするかチェックします。変数付きの正規表現を使用すると、マッチした部分を変数に保存します。 |
クッキー | 名前、値のパターン | 特定のクッキーが設定した正規表現にマッチするかチェックします。変数付きの正規表現を使用すると、マッチした部分を変数に保存します。変数の取得は、クッキーヘッダーを変更する可能性のあるルールを含む、他のルールが適用される前に実行されます。 |
本文のプレフィックス | バイト数、本文のパターン | リクエストボディの先頭から、指定されたバイト数をメモリにバッファリングし、設定した正規表現にマッチする部分を取得します。大きなリクエストボディであり、取得したいデータがリクエストボディの先頭に近い位置にいる場合、性能向上に対して有効なオプションです |
静的変換 | 名前、値 | ルール内で定義する静的変数です。値には他の条件で取得した変数も使用できます。 |
API変数 | URL | 外部のAPIリクエストを実行し、レスポンスから変数を構築します。JSON形式のレスポンスボディが期待されます。オリジンのレスポンスデータがこのAPI呼び出しに必要ない場合は、事前読み込みオプションを使用して、オリジンリクエストと並行してリクエストを送信することで早期に実行できます。 |
変数の値をチェックする | 値、正規表現 | 左辺に入力された変数を右辺の正規表現でチェックします。取得された変数は、どちら側でも使用できます。 |
実行で選択可能な処理
項目 | 詳細条件の設定項目 | 設定内容 |
---|---|---|
HTTPステータス | HTTPレスポンスコード | HTTPステータスコード(200、404など)を設定します。 |
ヘッダー | 操作、名前、値 |
|
クッキー | 操作、名前、値 |
|
ブラウザーキャッシュ | TTL (max-age) | リクエストのブラウザキャッシュの保持時間(秒単位)を設定します。 |
エッジキャッシュ | TTL (max-age) | リクエストのエッジキャッシュの保持時間(秒単位)を設定します。 |
HTML クロール | CSSセレクター、JSON パス、JSON 値一覧 | この機能を使用してHTMLボディの一部をキャプチャできます。キャプチャされたデータは、ShadowApiフォーマッタで使用され、スクリプトタグ内のJS変数としてボディの最後に挿入されるか、レスポンス全体がHTMLではなくキャプチャされたJSON変数のみを出力するように変更できます。 |
テキストの置換 | 置換前、置換後 | 置換前後のテキストを入力するとレスポンス内のテキストを置換します。 |
HTMLの編集 | [編集]をクリックして設定用モーダルを開く | 詳しい設定方法はHTMLの編集の項目を参照してください。 |
簡易レスポンス | HTML、コンテンツタイプ、HTML、ヘッダー | 手動で作成したレスポンスを返します。HTTP ステータス、本文のHTML、ヘッダーを指定します。本文やヘッダーの値にキャプチャされた変数が利用可能です。 |
リダイレクトURL | HTTP ステータス、URL | リダイレクトの方法を選択し、リダイレクト先のURLを入力します。 リダイレクトの方法は以下が設定可能です。
|
HTMLの編集
HTMLの編集ではKurocoEdgeがバックエンドホストから取得したHTMLをブラウザにレスポンスする際、HTMLに編集を加えることができます。
項目 | 説明 |
---|---|
全般 | HTMLに編集を加える範囲をCSSセレクターで指定します。 オプションで隠すを選択すると、指定した範囲にdisplay:none;を設定します。 オプションで削除するを選択すると、指定した範囲を削除します。 |
タグの属性 | CSSセレクタで指定した要素に対してタグの追加・削除・置換ができます。 |
タグのコンテンツ | CSSセレクタで指定した要素にテキストを追加します。子要素がある場合、指定したテキストは各要素に追加されます。 |
HTMLの挿入 | CSSセレクタで指定した要素に対して追加のHTMLを挿入します。HTMLを挿入する位置は次の中から選択します。
|
サポート
お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Discordコミュニティにご参加ください。