All Products
Search
Document Center

Alibaba Cloud Service Mesh:Header permintaan kustom dan header respons kustom

Last Updated:Jul 02, 2025

Dalam Service Mesh (ASM), baik VirtualService maupun EnvoyFilter dapat digunakan untuk menyesuaikan header permintaan dan header respons. Namun, skenario penggunaan dan tingkat fleksibilitasnya berbeda. Topik ini menjelaskan perbedaan antara penyesuaian header permintaan dan header respons menggunakan VirtualService dan EnvoyFilter CustomResourceDefinitions (CRDs).

Perbandingan antara VirtualService dan EnvoyFilter

VirtualService lebih cocok untuk memodifikasi header permintaan dan header respons yang sederhana serta terkait dengan routing, sedangkan EnvoyFilter memberikan kemampuan mendalam untuk menyesuaikan proxy Envoy. Anda dapat memilih salah satu berdasarkan kebutuhan bisnis Anda dan perbandingan dalam tabel berikut.

Item

VirtualService

EnvoyFilter

Tingkat Abstraksi

Menyediakan abstraksi tingkat tinggi yang memungkinkan Anda mendefinisikan penambahan atau penghapusan header permintaan dan header respons langsung dalam aturan routing Istio. Aturan ini lebih mudah dipahami dan didefinisikan, serta merupakan cara yang direkomendasikan untuk mengonfigurasi header permintaan dan respons.

Menyediakan antarmuka tingkat rendah yang memungkinkan Anda mengelola konfigurasi proxy Envoy secara langsung. EnvoyFilter memungkinkan Anda menulis skrip Lua kustom atau menggunakan ekstensi Envoy lainnya untuk mengimplementasikan logika kompleks. Metode ini lebih kuat dan fleksibel, tetapi juga lebih rumit. Diperlukan pemahaman mendalam tentang konfigurasi Envoy.

Kegunaan

Mengikuti CRD Istio untuk konfigurasi yang lebih mudah dan pemahaman yang lebih baik.

Memiliki konfigurasi yang kompleks dan memerlukan pemahaman baik tentang prinsip kerja internal Envoy. Untuk menulis filter Envoy dengan benar, Anda harus familiar dengan API konfigurasi Envoy. Oleh karena itu, kesalahan lebih mungkin terjadi.

Ruang Lingkup Aplikasi

VirtualService dapat memenuhi sebagian besar kebutuhan operasi header umum, seperti penambahan, modifikasi, atau penghapusan sederhana header permintaan dan respons. Misalnya, memungkinkan Anda menetapkan nilai header ke string statis tetap. Selain itu, ia dapat menghasilkan nilai header permintaan dan respons secara dinamis menggunakan ekspresi bawaan. Ekspresi ini biasanya diapit oleh simbol % dan dapat merujuk pada konten dinamis seperti atribut permintaan. Semua operator perintah HTTP yang digunakan untuk mengakses log dapat ditentukan dalam header permintaan atau respons kustom. Sebagai contoh, %UPSTREAM_CLUSTER% menunjukkan nama penyedia layanan. Untuk informasi lebih lanjut, lihat Operator Perintah.

EnvoyFilter mendukung penyesuaian tingkat lanjut dan operasi kompleks yang tidak dapat diimplementasikan oleh VirtualService, seperti pemeriksaan kondisi, transformasi data kompleks, atau pemanggilan layanan eksternal. Nilai kustom header permintaan dan respons dapat berupa nilai dinamis yang diimplementasikan melalui kode.

Skenario Penggunaan

ASM hanya perlu menambahkan, menghapus, atau memodifikasi header dalam permintaan atau respons, dan operasi ini terkait dengan aturan routing tertentu.

ASM perlu melakukan operasi permintaan atau respons mendalam, atau perlu mengubah header secara global tanpa memodifikasi aturan routing Istio.

Referensi