すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Service Mesh:パス書き換えルールの構成

最終更新日:Jan 15, 2025

パス書き換えルールを構成すると、HTTP リクエストのパスは、宛先アプリケーションに転送される前に、指定された値に書き換えることができます。 このトピックでは、パス書き換えルールを構成する方法について説明します。

前提条件

準備が完了し、HTTPBin サービスと sleep サービスがデプロイされています。 詳細については、「準備」をご参照ください。

手順

  1. istioctl ツールを使用して、次のコマンドを実行し、HTTPBin サービスのウェイポイントプロキシをデプロイします。

    istioctl x waypoint apply --service-account httpbin

    予想される出力:

    waypoint default/httpbin applied
  2. HTTPBin サービス宛のリクエストのパスが /get の場合、パスを /status/400 に書き換えるように、HTTPBin サービスの仮想サービスを構成します。

    1. ASM コンソール にログインします。 左側のナビゲーションペインで、[サービスメッシュ] > [メッシュ管理] を選択します。

    2. [メッシュ管理] ページで、ASM インスタンスの名前をクリックします。 左側のナビゲーションペインで、[トラフィック管理センター] > [virtualservice] を選択します。 表示されるページで、[作成] をクリックします。

    3. [作成] ページで、次のパラメーターを構成し、[プレビュー] をクリックします。 YAML コンテンツが正しいことを確認し、[送信] をクリックしてから、[作成] をクリックします。

      image.png

      展開して YAML ファイルを表示

      apiVersion: networking.istio.io/v1beta1
      kind: VirtualService
      metadata:
        name: httpbin
        namespace: default
      spec:
        hosts:
          - httpbin.default.svc.cluster.local
        http:
          - rewrite:
              uri: /status/400
            route:
              - destination:
                  host: httpbin.default.svc.cluster.local
  3. 次のコマンドを実行して、パス書き換え構成が有効になっているかどうかを確認します。

    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 に書き換えられたことを示しています。