パス書き換えルールを構成すると、HTTP リクエストのパスは、宛先アプリケーションに転送される前に、指定された値に書き換えることができます。 このトピックでは、パス書き換えルールを構成する方法について説明します。
前提条件
準備が完了し、HTTPBin サービスと sleep サービスがデプロイされています。 詳細については、「準備」をご参照ください。
手順
istioctl ツールを使用して、次のコマンドを実行し、HTTPBin サービスのウェイポイントプロキシをデプロイします。
istioctl x waypoint apply --service-account httpbin
予想される出力:
waypoint default/httpbin applied
HTTPBin サービス宛のリクエストのパスが
/get
の場合、パスを/status/400
に書き換えるように、HTTPBin サービスの仮想サービスを構成します。ASM コンソール にログインします。 左側のナビゲーションペインで、 を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。 左側のナビゲーションペインで、 を選択します。 表示されるページで、[作成] をクリックします。
[作成] ページで、次のパラメーターを構成し、[プレビュー] をクリックします。 YAML コンテンツが正しいことを確認し、[送信] をクリックしてから、[作成] をクリックします。
次のコマンドを実行して、パス書き換え構成が有効になっているかどうかを確認します。
kubectl exec -it deploy/sleep -- curl httpbin:8000/get -I
予想される出力:
HTTP/1.1 400 Bad Request server: istio-envoy date: xxx, xx xxx 202x xx:xx:xx GMT content-type: text/html; charset=utf-8 access-control-allow-origin: * access-control-allow-credentials: true content-length: 0 x-envoy-upstream-service-time: 4
sleep コンテナの HTTPBin サービスの
/get
パスにリクエストが送信されていることがわかります。 このパスに送信されたリクエストは、ステータスコード 200 で応答されるはずです。 ただし、この場合はステータスコード 400 が返されます。 この結果は、パス書き換え構成が有効であり、リクエストのパスが/status/400
に書き換えられたことを示しています。