全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Plug-in CustomLocalReply

更新时间:Jul 02, 2025

Dalam beberapa kasus, gateway ASM atau proxy sidecar dapat langsung mengembalikan respons HTTP dengan kode status tertentu ke layanan downstream, alih-alih meneruskan respons tersebut ke layanan upstream. Plug-in CustomLocalReply memungkinkan Anda menyesuaikan badan respons, kode respons, dan header respons yang dikembalikan oleh gateway ASM atau proxy sidecar ke layanan downstream. Anda dapat menentukan konten respons unik untuk setiap kode respons.

Prasyarat

Bidang konfigurasi

Nama

Tipe data

Wajib

Nilai valid

Deskripsi

patch_context

String

Ya

  • GATEWAY: Plug-in berjalan pada gateway ASM.

  • SIDECAR_INBOUND: Plug-in berjalan pada proxy sidecar.

Konfigurasikan parameter ini berdasarkan jenis beban kerja tempat Anda melampirkan plug-in (gateway ASM atau beban kerja bisnis tertentu).

Menentukan konteks dan lingkungan runtime di mana plug-in dijalankan.

custom_error_pages

CustomErrorPage[]

Ya

-

Menentukan daftar objek CustomErrorPage. Setiap objek CustomErrorPage menentukan kode respons yang secara langsung dikembalikan oleh gateway ASM atau proxy sidecar serta konten respons yang dikembalikan saat kode respons tersebut diterima.

Deskripsi bidang CustomErrorPage

  • Ketika gateway ASM tidak dapat menemukan aturan routing yang sesuai dengan permintaan, ia mengembalikan kode status HTTP 404.

  • Ketika gateway ASM atau proxy sidecar dikonfigurasikan dengan kebijakan otorisasi dan permintaan ditolak oleh kebijakan otorisasi, ia mengembalikan kode status HTTP 403, dengan konten respons tetap sebagai RBAC: Access Denied.

  • Ketika directResponse dikonfigurasikan dalam layanan virtual, gateway ASM atau proxy sidecar langsung mengembalikan kode status HTTP dan badan respons yang ditentukan.

Nama

Tipe data

Wajib

Nilai default

Deskripsi

match_status_code

Integer

Ya

-

Menentukan kode status HTTP yang cocok yang secara langsung dikembalikan oleh gateway ASM atau proxy sidecar. Ketika gateway ASM atau proxy sidecar mengembalikan kode status HTTP yang ditentukan, konfigurasi yang ditentukan diterapkan untuk mengembalikan badan respons yang telah ditentukan sebelumnya.

return_status_code

Integer

Ya

-

Menentukan kode status HTTP yang dikembalikan ke layanan downstream.

content_type

String

Ya

-

Menentukan content-type yang dikembalikan ke layanan downstream.

headers

Map[string]string

Opsional

null

Menentukan header respons dalam respons kustom.

body

String

Ya

-

Menentukan badan respons dalam respons kustom.

Konfigurasi contoh

Terapkan layanan virtual berikut di instance 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

Untuk layanan virtual di atas, konfigurasikan directResponse agar gateway ASM langsung mengembalikan kode status HTTP 404 alih-alih meneruskan permintaan ke layanan upstream.

Gunakan konfigurasi berikut untuk mengaktifkan plug-in CustomLocalReply dan terapkan plug-in ke gateway ingress ASM bernama ingressgateway.

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

Konfigurasi ini memungkinkan Anda mengubah kode status HTTP 404 yang secara langsung dikembalikan oleh gateway ASM menjadi kode status HTTP 301 (Moved Permanently) dan mengonfigurasi location: https://www.aliyun.com dalam header respons untuk mengarahkan browser ke https://www.aliyun.com.

Jika Anda mengakses alamat IP gateway ASM menggunakan browser, Anda akan dialihkan ke situs web resmi Alibaba Cloud https://www.aliyun.com. Hal ini menunjukkan bahwa konfigurasi plug-in yang dimodifikasi telah berlaku.