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

Alibaba Cloud Service Mesh:CustomLocalReplyプラグイン

最終更新日:Jan 13, 2025

ASM ゲートウェイまたはサイドカープロキシは、アップストリームサービスにレスポンスを転送する代わりに、特定のステータスコードを持つ HTTP レスポンスをダウンストリームサービスに直接返す場合があります。CustomLocalReply プラグインを使用すると、ASM ゲートウェイまたはサイドカープロキシがダウンストリームサービスに返すレスポンス本文、レスポンスコード、およびレスポンスヘッダーをカスタマイズできます。レスポンスコードごとに固有のレスポンスコンテンツを指定できます。

前提条件

構成フィールド

名前

データ型

必須

有効な値

説明

patch_context

String

はい

  • GATEWAY: プラグインは ASM ゲートウェイで実行されます。

  • SIDECAR_INBOUND: プラグインはサイドカープロキシで実行されます。

プラグインをアタッチするワークロードのタイプ(ASM ゲートウェイまたは特定のビジネスワークロード)に基づいてパラメーターを構成します。

プラグインが実行されるコンテキストとランタイム環境を指定します。

custom_error_pages

CustomErrorPage[]

はい

-

CustomErrorPage オブジェクトのリストを指定します。各 CustomErrorPage オブジェクトは、ASM ゲートウェイまたはサイドカープロキシによって直接返されるレスポンスコードと、そのレスポンスコードを受信したときに返されるレスポンスコンテンツを指定します。

CustomErrorPage フィールドの説明

  • ASM ゲートウェイがリクエストに一致するルーティングルールを見つけられない場合、HTTP ステータスコード 404 を返します。

  • ASM ゲートウェイまたはサイドカープロキシが承認ポリシーで構成されており、リクエストが承認ポリシーによって拒否された場合、HTTP ステータスコード 403 を返し、レスポンスコンテンツは RBAC: Access Denied に固定されます。

  • 仮想サービスで directResponse が構成されている場合、ASM ゲートウェイまたはサイドカープロキシは、指定された HTTP ステータスコードとレスポンス本文を直接返します。

名前

データ型

必須

デフォルト値

説明

match_status_code

Integer

はい

-

ASM ゲートウェイまたはサイドカープロキシによって直接返される、一致する HTTP ステータスコードを指定します。ASM ゲートウェイまたはサイドカープロキシが指定された HTTP ステータスコードを返すと、指定された構成が適用され、事前定義されたレスポンス本文が返されます。

return_status_code

Integer

はい

-

ダウンストリームサービスに返される HTTP ステータスコードを指定します。

content_type

String

はい

-

ダウンストリームサービスに返される content-type を指定します。

headers

Map[string]string

オプション

null

カスタムレスポンスのレスポンスヘッダーを指定します。

body

String

はい

-

カスタムレスポンスのレスポンス本文を指定します。

設定例

ASM インスタンスに次の仮想サービスをデプロイします。

apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: httpbin
  namespace: default
spec:
  gateways:
    - httpbin-gateway
  hosts:
    - '*'
  http:
    - directResponse:
        body:
          string: not found
        status: 404

上記の仮想サービスでは、directResponse を構成して、ASM ゲートウェイがリクエストをアップストリームサービスに転送する代わりに HTTP ステータスコード 404 を直接返すようにします。

次の構成を使用して CustomLocalReply プラグインを有効にし、ingressgateway という名前の ASMイングレスゲートウェイにプラグインを適用します。

patch_context: GATEWAY
custom_error_pages:
  - match_status_code: 404
    return_status_code: 301
    headers:
      location: 'https://www.aliyun.com'
    content_type: text/html; charset=UTF-8
    body: moved

この構成により、ASM ゲートウェイによって直接返される HTTP ステータスコード 404 を HTTP ステータスコード 301 (Moved Permanently) に変更し、レスポンスヘッダーに location: https://www.aliyun.com を構成して、ブラウザーを https://www.aliyun.com にリダイレクトできます。

ブラウザーを使用して ASM ゲートウェイの IP アドレスにアクセスすると、Alibaba Cloud 公式 Web サイト https://www.aliyun.com にリダイレクトされます。これは、変更されたプラグイン構成が有効になっていることを示します。