HTTP 再書き込みポリシーを設定することで、リクエストをバックエンドサービスに転送する前に、リクエストのパスとホスト名を変更できます。これにより、特定のビジネス要件やアーキテクチャのニーズを満たすことができます。再書き込みポリシーを使用すると、リクエストのパスとホスト名を正確に制御し、リクエストが適切なサービスまたはエンドポイントに正しくルーティングされるようにすることができます。
HTTP 再書き込みポリシーの設定
HTTP 再書き込みポリシーは、主に元のリクエストのパスとホスト名を変更するために使用されます。
クラウドネイティブ API Gateway では、インスタンスの外部とインスタンスの内部の 2 つの方法で HTTP 再書き込みポリシーを設定できます。
インスタンス外の API
クラウドネイティブ API Gateway コンソールにログインします。左側のナビゲーションウィンドウで [API] を選択し、上部のメニューバーでリージョンを選択します。
ターゲット API をクリックします。ドロップダウンリストから HTTP 再書き込みポリシーを設定するインスタンスを選択するか、[すべてのインスタンス] を選択できます。

[ルート一覧] からターゲットルートを選択します。
インスタンス内の API
クラウドネイティブ API Gateway コンソールにログインします。左側のナビゲーションウィンドウで [インスタンス] を選択し、上部のメニューバーでリージョンを選択します。
[インスタンス] ページで、ターゲットゲートウェイインスタンスの ID をクリックします。左側のナビゲーションウィンドウで [API] を選択し、ターゲット API をクリックします。
[ルート一覧] からターゲットルートを選択します。
[ポリシー設定] タブをクリックし、[インバウンド処理] セクションの [ポリシー/プラグインを有効にする] をクリックします。
[HTTP 再書き込み] カードをクリックし、[ポリシーの追加: HTTP 再書き込み] パネルでパラメーターを設定してから、[追加] をクリックします。
パスの再書き込み
パスの再書き込みでは、クラウドネイティブ API Gateway は、完全一致再書き込みと正規表現再書き込みの 2 つの再書き込みモードをサポートしています。
プレフィックスの再書き込み
リクエストのパスプレフィックスを変更します。
例 1
元のリクエストのパスは /app/test ですが、バックエンドサービスに転送されるパスは /test です。次のポリシーを設定することをお勧めします。
ルート一致条件: 一致タイプはプレフィックス一致で、パスは
/app/です。再書き込み: 再書き込みタイプはプレフィックスの再書き込みで、パスは
/です。
プレフィックスの再書き込みはプレフィックス一致文字列のみを変更するため、ルート一致条件のパスは /app/ に設定する必要があります。ルート一致条件のパスが /app に設定されている場合、再書き込み後のパスは //test となり、期待される結果とは異なります。
例 2
元のリクエストのパスは /v1/test ですが、バックエンドサービスに転送されるパスは /v2/test です。次のポリシーを設定することをお勧めします。
ルート一致条件: 一致タイプはプレフィックス一致で、パスは
/v1です。再書き込み: 再書き込みタイプはプレフィックスの再書き込みで、パスは
/v2です。
再書き込みポリシーの再書き込みタイプをプレフィックスの再書き込みにする場合、ルートの一致タイプはプレフィックス一致である必要があります。ルートの一致タイプを完全一致または正規表現一致にすることはできません。ルートの一致タイプがプレフィックス一致に設定されている場合、指定されたプレフィックスを含むパスを持つすべてのリクエストが一致し、再書き込みされます。再書き込みポリシーの再書き込みタイプをプレフィックスの再書き込みに設定する前に、すべてのリクエストを再書き込みする必要があることを確認する必要があります。そうでない場合は、再書き込みタイプを完全一致再書き込みに設定することをお勧めします。
正規表現の再書き込み
リクエストのパスを部分的に変更します。正規表現の再書き込み設定は、モードと置換フィールドで構成されます。モードフィールドの値は、元のパスで変更したい特定の部分を照合するために使用されます。置換フィールドの値は、照合された部分を置き換えるために使用されます。正規表現の構文の詳細については、「正規表現の構文」をご参照ください。
例 1
元のリクエストのパスは /aaa/one/bbb/one/ccc ですが、バックエンドサービスに転送されるパスは /aaa/two/bbb/two/ccc です。次のポリシーを設定することをお勧めします。
ルート一致条件: 一致タイプは完全一致で、パスは
/aaa/one/bbb/one/cccです。再書き込み: 再書き込みタイプは正規表現の再書き込みで、モードは
one、置換はtwoです。
例 2
元のリクエストのパスは /httpbin/(.*)/(.*) です。/httpbin プレフィックスを削除し、2 つの正規表現部分の位置を入れ替えたいとします。次のポリシーを設定することをお勧めします。
ルート一致条件: 一致タイプは正規表現一致で、パスは
/httpbin/(.*)/(.*)です。再書き込み: 再書き込みタイプは正規表現の再書き込みで、モードは
/httpbin/(.*)/(.*)、置換は/\2/\1です。\1は正規表現に一致した最初の文字列を表し、\2は正規表現に一致した 2 番目の文字列を表します。この使用法は、Nginx の $1 と $2 に対応します。
正規表現の再書き込み方法は、プレフィックスの再書き込み方法や完全一致の再書き込み方法よりも複雑です。可能であれば、正規表現の再書き込み方法の代わりに完全一致の再書き込み方法を使用することをお勧めします。
ホスト名の再書き込み
クラウドネイティブ API Gateway では、完全一致の再書き込み方法を使用してリクエストのホスト名を変更できます。
たとえば、元のリクエストのホスト名は test.com ですが、バックエンドサービスに転送されるホスト名は dev.com です。再書き込みポリシーで、再書き込みホスト名を dev.com に設定します。