書き換えポリシーを設定することで、カスタムドメイン名を介して関数に到達するリクエストの URI を変更できます。このトピックでは、利用可能な書き換えパターンについて説明し、Function Compute (FC) コンソールでカスタムドメイン名の書き換えポリシーを設定する方法を示します。
背景情報
Function Compute の書き換えポリシーでは、リクエスト URI のpath およびquery コンポーネントのみを変更できます。scheme、host、port、またはfragment の変更はサポートされていません。
書き換えパターン
FC は、カスタムドメイン名に対してルートレベルの書き換えをサポートしており、書き換えパターンとして完全一致書き換え、ワイルドカード書き換え、正規表現書き換えの 3 種類を提供します。
完全一致書き換え
完全一致書き換えでは、リクエストの path が一致ルールと完全に一致する場合、path は置換ルールで書き換えられます。たとえば、一致ルールが /old で、置換ルールが /new の場合、/old へのリクエストは /new に書き換えられます。
|
一致ルール |
置換ルール |
元の URI |
書き換え後の URI |
|
|
|
|
|
|
|
不一致 |
||
|
|
|
|
|
ワイルドカード書き換え
ワイルドカード書き換えは、リクエストを一致させるためのシンプルな方法であり、ほとんどのユースケースに適しています。
書き換えルールでは、各アスタリスクによってキャプチャされた文字列を、その位置に従って参照できます。たとえば、一致ルールが /api/* で、書き換えルールが /$1 の場合、/api/getFunctionName へのリクエストは /getFunctionName に書き換えられます。
ワイルドカードリライトでは、* と^ は特別な意味を持ちます。それ以外のすべての文字はリテラル文字列として照合されます。
-
*は任意の文字列に一致します。 -
^は、マッチを文字列の先頭にアンカーします。
|
一致ルール |
置換ルール |
元の URI |
書き換え後の URI |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
不一致 |
||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
不一致 |
正規表現書き換え
正規表現書き換えでは、一致ルールと置換ルールは標準の正規表現構文に従います。構文の詳細については、「正規表現の構文」をご参照ください。
正規表現書き換えは、構文が複雑な高度な機能であり、特別なユースケースを対象としています。ほとんどのシナリオでは、ワイルドカード書き換えを使用することを推奨します。
|
一致ルール |
置換ルール |
元の URI |
書き換え後の URI |
|
|
|
|
|
|
|
不一致 |
||
|
|
|
|
|
|
|
|
一致の順序と優先度
3つの書き換えパターンの優先順位は、高い順に完全一致書き換え → ワイルドカード書き換え → 正規表現書き換えです。
1 つのルーティングルールに複数の書き換えポリシーを設定できます。リクエストが同じ種類の複数のポリシーに一致する場合、FC は指定された順序で最初のポリシーを適用し、残りは無視します。
たとえば、次のワイルドカード書き換えポリシーがあるとします:
var rule1 = &WildcardRules{
Match: "/api/v1/*",
Replacement: "/api/v2/$1",
}
var rule2 = &WildcardRules{
Match: "/api/*/*",
Replacement: "/api/v3/$2",
}
-
書き換えポリシーが [rule1, rule2] の順序である場合、
/api/v1/getFunctionNameへのリクエストは/api/v2/getFunctionNameに書き換えられます。 -
書き換えポリシーの順序が [rule2, rule1] の場合、
/api/v1/getFunctionNameへのリクエストは/api/v3/getFunctionNameに書き換えられます。
前提条件
操作手順
新しいカスタムドメイン名または既存のカスタムドメイン名に書き換えポリシーを追加できます。
新しいドメイン名
-
Function Compute コンソールにログインします。 左側のナビゲーションペインで、を選択します。
-
上部メニューでリージョンを選択します。ドメイン名管理 ページで、カスタムドメイン名の追加 をクリックします。
-
カスタムドメイン名の追加 ページで、ドメイン名を入力します。[ルーティング設定] セクションで、設定 の [Configure] をクリックします。
-
[書き換えポリシーの設定] パネルで [+ 書き換えポリシーの追加] をクリックし、ポリシーを設定してから OK をクリックします。
書き換えポリシーは、[ポリシータイプ] のオプションとして、[完全一致書き換え] (たとえば、一致ルール
/oldと置換ルール/new)、[ワイルドカード書き換え] (たとえば、一致ルール/api/*と置換ルール$1)、[正規表現書き換え] (たとえば、一致ルール^/api/.+?/(.*)と置換ルール/api/v2/$1) の 3 つをサポートしています。各ポリシーについて、[一致ルール] と [置換ルール] を設定する必要があります。
既存のドメイン名
-
Function Compute コンソールにログインします。左側のナビゲーションペインで、を選択します。
-
トップナビゲーションバーでリージョンを選択します。ドメイン名リストで、対象のドメイン名を見つけ、[操作] 列の [変更] をクリックします。
-
[カスタムドメイン名の変更] ページで、[ルーティング設定] セクションに移動し、設定 の [Configure] をクリックします。
-
[書き換えポリシーの設定] パネルで [+ 書き換えポリシーの追加] をクリックし、ポリシーを設定してから OK をクリックします。