- Resource: GrpcRoute
- RouteRule
- RouteMatch
- MethodMatch
- Jenis
- HeaderMatch
- Jenis
- RouteAction
- Tujuan
- FaultInjectionPolicy
- Penundaan
- Abort
- RetryPolicy
- StatefulSessionAffinityPolicy
- Metode
Resource: GrpcRoute
GrpcRoute adalah resource yang menentukan cara traffic gRPC yang dirutekan oleh resource Mesh atau Gateway dirutekan.
Representasi JSON |
---|
{
"name": string,
"selfLink": string,
"createTime": string,
"updateTime": string,
"labels": {
string: string,
...
},
"description": string,
"hostnames": [
string
],
"meshes": [
string
],
"gateways": [
string
],
"rules": [
{
object ( |
Kolom | |
---|---|
name |
Wajib. Nama resource GrpcRoute. Cocok dengan pola |
selfLink |
Hanya output. URL resource ini yang ditentukan server |
createTime |
Hanya output. Stempel waktu saat resource dibuat. Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan hingga sembilan digit pecahan. Contoh: |
updateTime |
Hanya output. Stempel waktu saat resource diperbarui. Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan hingga sembilan digit pecahan. Contoh: |
labels |
Opsional. Kumpulan tag label yang terkait dengan resource GrpcRoute. Objek yang berisi daftar pasangan |
description |
Opsional. Deskripsi teks bebas tentang resource. Panjang maksimum 1.024 karakter. |
hostnames[] |
Wajib. Nama host layanan dengan port opsional yang traffic-nya dijelaskan oleh rute ini. Format: Nama host adalah nama domain yang sepenuhnya memenuhi syarat dari host jaringan. Hal ini cocok dengan definisi nama host RFC 1123 dengan 2 pengecualian penting: - IP tidak diizinkan. - Nama host dapat diawali dengan label karakter pengganti ( Nama host dapat berupa "akurat", yaitu nama domain tanpa titik akhir host jaringan (misalnya, Perhatikan bahwa sesuai dengan RFC1035 dan RFC1123, label harus terdiri dari karakter alfanumerik huruf kecil atau '-', dan harus diawali dan diakhiri dengan karakter alfanumerik. Tanda baca lainnya tidak diizinkan. Rute yang terkait dengan Mesh atau Gateway harus memiliki nama host yang unik. Jika Anda mencoba melampirkan beberapa rute dengan nama host yang bertentangan, konfigurasi akan ditolak. Misalnya, meskipun rute untuk nama host Jika port ditentukan, klien gRPC harus menggunakan URI saluran dengan port agar cocok dengan aturan ini (yaitu "xds:///service:123"), jika tidak, klien harus menyediakan URI tanpa port (yaitu "xds:///service"). |
meshes[] |
Opsional. Mesh menentukan daftar mesh tempat GrpcRoute ini dilampirkan, sebagai salah satu aturan pemilihan rute untuk merutekan permintaan yang ditayangkan oleh mesh. Setiap referensi mesh harus cocok dengan pola: |
gateways[] |
Opsional. Gateway menentukan daftar gateway tempat GrpcRoute ini dilampirkan, sebagai salah satu aturan pemilihan rute untuk merutekan permintaan yang ditayangkan oleh gateway. Setiap referensi gateway harus cocok dengan pola: |
rules[] |
Wajib. Daftar aturan mendetail yang menentukan cara merutekan traffic. Dalam satu GrpcRoute, GrpcRoute.RouteAction yang terkait dengan GrpcRoute.RouteRule pertama yang cocok akan dieksekusi. Setidaknya satu aturan harus diberikan. |
RouteRule
Menjelaskan cara merutekan traffic.
Representasi JSON |
---|
{ "matches": [ { object ( |
Kolom | |
---|---|
matches[] |
Opsional. Kecocokan menentukan kondisi yang digunakan untuk mencocokkan aturan dengan permintaan gRPC yang masuk. Setiap kecocokan bersifat independen, yaitu aturan ini akan cocok jika SALAH SATU kecocokan terpenuhi. Jika tidak ada kolom kecocokan yang ditentukan, aturan ini akan mencocokkan traffic tanpa syarat. |
action |
Wajib. Aturan mendetail yang menentukan cara merutekan traffic. Kolom ini wajib diisi. |
RouteMatch
Kriteria untuk mencocokkan traffic. RouteMatch akan dianggap cocok jika semua kolom yang diberikan cocok.
Representasi JSON |
---|
{ "headers": [ { object ( |
Kolom | |
---|---|
headers[] |
Opsional. Menentukan kumpulan header yang akan dicocokkan. |
method |
Opsional. Metode gRPC yang akan dicocokkan. Jika kolom ini kosong atau dihilangkan, akan cocok dengan semua metode. |
MethodMatch
Menentukan kecocokan dengan metode.
Representasi JSON |
---|
{
"type": enum ( |
Kolom | |
---|---|
type |
Opsional. Menentukan cara pencocokan dengan nama. Jika tidak ditentukan, nilai default "EXACT" akan digunakan. |
grpcService |
Wajib. Nama layanan yang akan dicocokkan. Jika tidak ditentukan, akan cocok dengan semua layanan. |
grpcMethod |
Wajib. Nama metode yang akan dicocokkan. Jika tidak ditentukan, akan cocok dengan semua metode. |
caseSensitive |
Opsional. Menentukan bahwa pencocokan peka huruf besar/kecil. Nilai defaultnya adalah benar. caseSensitive tidak boleh digunakan dengan jenis REGULAR_EXPRESSION. |
Jenis
Jenis pencocokan.
Enum | |
---|---|
TYPE_UNSPECIFIED |
Tidak ditentukan. |
EXACT |
Hanya akan cocok dengan nama yang sama persis yang diberikan. |
REGULAR_EXPRESSION |
Akan menafsirkan grpcMethod dan grpcService sebagai ekspresi reguler. Sintaksis RE2 didukung. |
HeaderMatch
Kecocokan dengan kumpulan header.
Representasi JSON |
---|
{
"type": enum ( |
Kolom | |
---|---|
type |
Opsional. Menentukan cara mencocokkan dengan nilai header. Jika tidak ditentukan, nilai default EXACT akan digunakan. |
key |
Wajib. Kunci header. |
value |
Wajib. Nilai header. |
Jenis
Jenis pencocokan.
Enum | |
---|---|
TYPE_UNSPECIFIED |
Tidak ditentukan. |
EXACT |
Hanya akan cocok dengan nilai persis yang diberikan. |
REGULAR_EXPRESSION |
Akan mencocokkan jalur yang sesuai dengan awalan yang ditentukan oleh nilai. Sintaksis RE2 didukung. |
RouteAction
Menentukan cara merutekan traffic yang cocok.
Representasi JSON |
---|
{ "destinations": [ { object ( |
Kolom | |
---|---|
destinations[] |
Opsional. Layanan tujuan tempat traffic harus diteruskan. Jika beberapa tujuan ditentukan, traffic akan dibagi antara Layanan Backend sesuai dengan kolom bobot tujuan ini. |
faultInjectionPolicy |
Opsional. Spesifikasi untuk injeksi error yang dimasukkan ke dalam traffic untuk menguji ketahanan klien terhadap kegagalan layanan tujuan. Sebagai bagian dari injeksi error, saat klien mengirim permintaan ke tujuan, penundaan dapat terjadi pada persentase permintaan sebelum mengirim permintaan tersebut ke layanan tujuan. Demikian pula, permintaan dari klien dapat dibatalkan untuk persentase permintaan. timeout dan retryPolicy akan diabaikan oleh klien yang dikonfigurasi dengan faultInjectionPolicy |
timeout |
Opsional. Menentukan waktu tunggu untuk rute yang dipilih. Waktu tunggu dihitung dari saat permintaan telah diproses sepenuhnya (yaitu akhir streaming) hingga respons telah diproses sepenuhnya. Waktu tunggu mencakup semua percobaan ulang. Durasi dalam detik dengan maksimal sembilan digit pecahan, yang diakhiri dengan ' |
retryPolicy |
Opsional. Menentukan kebijakan percobaan ulang yang terkait dengan rute ini. |
statefulSessionAffinity |
Opsional. Menentukan afinitas sesi stateful berbasis cookie. |
idleTimeout |
Opsional. Menentukan waktu tunggu tidak ada aktivitas untuk rute yang dipilih. Waktu tunggu tidak ada aktivitas ditentukan sebagai periode saat tidak ada byte yang dikirim atau diterima di koneksi upstream atau downstream. Jika tidak ditetapkan, waktu tunggu tidak ada aktivitas defaultnya adalah 1 jam. Jika disetel ke 0 detik, waktu tunggu akan dinonaktifkan. Durasi dalam detik dengan maksimal sembilan digit pecahan, yang diakhiri dengan ' |
Tujuan
Tujuan tempat traffic akan dirutekan.
Representasi JSON |
---|
{ // Union field |
Kolom | |
---|---|
Kolom union destination_type . Menentukan jenis tujuan tempat traffic akan dirutekan. destination_type hanya ada berupa salah satu diantara berikut: |
|
serviceName |
Wajib. URL layanan tujuan yang akan merutekan traffic. Harus merujuk ke BackendService atau ServiceDirectoryService. |
weight |
Opsional. Menentukan proporsi permintaan yang diteruskan ke backend yang dirujuk oleh kolom serviceName. Nilai ini dihitung sebagai: - weight/Sum(weights in this destination list). Untuk nilai non-nol, mungkin ada beberapa epsilon dari proporsi persis yang ditentukan di sini, bergantung pada presisi yang didukung implementasi. Jika hanya satu serviceName yang ditentukan dan memiliki bobot lebih besar dari 0, 100% traffic akan diteruskan ke backend tersebut. Jika bobot ditentukan untuk satu nama layanan, bobot tersebut harus ditentukan untuk semua nama layanan. Jika bobot tidak ditentukan untuk semua layanan, traffic akan didistribusikan dalam proporsi yang sama ke semua layanan. |
FaultInjectionPolicy
Spesifikasi untuk injeksi error yang dimasukkan ke dalam traffic untuk menguji ketahanan klien terhadap kegagalan layanan tujuan. Sebagai bagian dari injeksi error, saat klien mengirim permintaan ke tujuan, penundaan dapat terjadi pada persentase permintaan sebelum mengirim permintaan tersebut ke layanan tujuan. Demikian pula, permintaan dari klien dapat dibatalkan untuk persentase permintaan.
Representasi JSON |
---|
{ "delay": { object ( |
Kolom | |
---|---|
delay |
Spesifikasi untuk memasukkan penundaan ke permintaan klien. |
abort |
Spesifikasi untuk membatalkan permintaan klien. |
Penundaan
Spesifikasi cara permintaan klien tertunda sebagai bagian dari injeksi error sebelum dikirim ke tujuan.
Representasi JSON |
---|
{ "fixedDelay": string, "percentage": integer } |
Kolom | |
---|---|
fixedDelay |
Tentukan penundaan tetap sebelum meneruskan permintaan. Durasi dalam detik dengan maksimal sembilan digit pecahan, yang diakhiri dengan ' |
percentage |
Persentase traffic yang akan mengalami penundaan. Nilai harus antara [0, 100] |
Batalkan
Spesifikasi cara permintaan klien dibatalkan sebagai bagian dari injeksi error sebelum dikirim ke tujuan.
Representasi JSON |
---|
{ "httpStatus": integer, "percentage": integer } |
Kolom | |
---|---|
httpStatus |
Kode status HTTP yang digunakan untuk membatalkan permintaan. Nilai harus antara 200 dan 599 inklusif. |
percentage |
Persentase traffic yang akan dibatalkan. Nilai harus antara [0, 100] |
RetryPolicy
Spesifikasi untuk percobaan ulang.
Representasi JSON |
---|
{ "retryConditions": [ string ], "numRetries": integer } |
Kolom | |
---|---|
retryConditions[] |
|
numRetries |
Menentukan jumlah percobaan ulang yang diizinkan. Angka ini harus > 0. Jika tidak ditentukan, defaultnya adalah 1. |
StatefulSessionAffinityPolicy
Spesifikasi untuk afinitas sesi stateful berbasis cookie dengan bidang tanggal yang menyediakan "cookie sesi" dengan nama "GSSA" yang mengenkode host tujuan tertentu dan setiap permintaan yang berisi cookie tersebut akan diarahkan ke host tersebut selama host tujuan tetap aktif dan berfungsi.
Library mesh tanpa proxy gRPC atau proxy sidecar akan mengelola cookie sesi, tetapi kode aplikasi klien bertanggung jawab untuk menyalin cookie dari setiap RPC dalam sesi ke sesi berikutnya.
Representasi JSON |
---|
{ "cookieTtl": string } |
Kolom | |
---|---|
cookieTtl |
Wajib. Nilai TTL cookie untuk header Set-Cookie yang dihasilkan oleh bidang data. Masa berlaku cookie dapat ditetapkan ke nilai dari 1 hingga 86.400 detik (24 jam) tanpa kecuali. Durasi dalam detik dengan maksimal sembilan digit pecahan, yang diakhiri dengan ' |
Metode |
|
---|---|
|
Membuat GrpcRoute baru di project dan lokasi tertentu. |
|
Menghapus satu GrpcRoute. |
|
Mendapatkan detail satu GrpcRoute. |
|
Mencantumkan GrpcRoutes di project dan lokasi tertentu. |
|
Memperbarui parameter satu GrpcRoute. |