- Resource: GrpcRoute
- RouteRule
- RouteMatch
- MethodMatch
- Jenis
- HeaderMatch
- Jenis
- RouteAction
- Tujuan
- FaultInjectionPolicy
- Penundaan
- Batalkan
- 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 |
ID. Nama resource GrpcRoute. Cocok dengan pola |
selfLink |
Hanya output. URL yang ditentukan server untuk resource ini |
createTime |
Hanya output. Stempel waktu saat resource dibuat. Menggunakan RFC 3339, dengan output yang dihasilkan akan selalu dinormalisasi Z dan menggunakan 0, 3, 6, atau 9 digit pecahan. Offset selain "Z" juga diterima. Contoh: |
updateTime |
Hanya output. Stempel waktu saat resource diperbarui. Menggunakan RFC 3339, dengan output yang dihasilkan akan selalu dinormalisasi Z dan menggunakan 0, 3, 6, atau 9 digit pecahan. Offset selain "Z" juga diterima. 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 1024 karakter. |
hostnames[] |
Wajib. Nama host layanan dengan port opsional yang rutenya menjelaskan traffic. Format: Nama host adalah nama domain yang sepenuhnya memenuhi syarat dari host jaringan. 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 "precise" yang merupakan nama domain tanpa titik penghentian 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"), atau mereka harus memberikan URI tanpa port (yaitu, "xds:///service"). |
meshes[] |
Opsional. Mesh menentukan daftar mesh yang terlampir ke GrpcRoute ini, sebagai salah satu aturan perutean untuk merutekan permintaan yang ditayangkan oleh mesh. Setiap referensi mesh harus cocok dengan pola: |
gateways[] |
Opsional. Gateway menentukan daftar gateway yang terlampir pada GrpcRoute ini, 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 yang cocok pertama akan dieksekusi. Setidaknya satu aturan harus diberikan. |
RouteRule
Menjelaskan cara merutekan traffic.
Representasi JSON |
---|
{ "matches": [ { object ( |
Kolom | |
---|---|
matches[] |
Opsional. Pencocokan menentukan kondisi yang digunakan untuk mencocokkan aturan dengan permintaan gRPC 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 tidak ada, akan cocok dengan semua metode. |
MethodMatch
Menentukan kecocokan dengan metode.
Representasi JSON |
---|
{
"type": enum ( |
Kolom | |
---|---|
type |
Opsional. Menentukan cara mencocokkan nama. Jika tidak ditentukan, nilai default "EXACT" akan digunakan. |
grpcService |
Wajib. Nama layanan yang akan dicocokkan. Jika tidak ditentukan, akan mencocokkan semua layanan. |
grpcMethod |
Wajib. Nama metode yang akan dicocokkan. Jika tidak ditentukan, akan mencocokkan semua metode. |
caseSensitive |
Opsional. Menentukan bahwa kecocokan peka huruf besar/kecil. Nilai defaultnya adalah benar (true). caseSensitive tidak boleh digunakan dengan jenis REGULAR_EXPRESSION. |
Jenis
Jenis kecocokan.
Enum | |
---|---|
TYPE_UNSPECIFIED |
Tidak ditentukan. |
EXACT |
Hanya akan mencocokkan nama persis yang diberikan. |
REGULAR_EXPRESSION |
Akan menafsirkan grpcMethod dan grpcService sebagai regex. Sintaksis RE2 didukung. |
HeaderMatch
Kecocokan dengan kumpulan header.
Representasi JSON |
---|
{
"type": enum ( |
Kolom | |
---|---|
type |
Opsional. Menentukan cara mencocokkan 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 mencocokkan 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 yang menjadi tujuan penerusan traffic. Jika beberapa tujuan ditentukan, traffic akan dibagi di antara Layanan Backend sesuai dengan kolom bobot tujuan ini. |
faultInjectionPolicy |
Opsional. Spesifikasi untuk injeksi kesalahan yang dimasukkan ke dalam traffic untuk menguji ketahanan klien terhadap kegagalan layanan tujuan. Sebagai bagian dari injeksi kesalahan, 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 tertentu. 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 pada koneksi upstream atau downstream. Jika tidak disetel, waktu tunggu tidak ada aktivitas default 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 menjadi tujuan perutean 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: - bobot/Jumlah(bobot dalam daftar tujuan ini). Untuk nilai bukan 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 diteruskan ke backend tersebut. Jika bobot ditentukan untuk salah 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 tersebut. |
FaultInjectionPolicy
Spesifikasi untuk injeksi kesalahan yang dimasukkan ke dalam traffic untuk menguji ketahanan klien terhadap kegagalan layanan tujuan. Sebagai bagian dari injeksi kesalahan, 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 tertentu.
Representasi JSON |
---|
{ "delay": { object ( |
Kolom | |
---|---|
delay |
Spesifikasi untuk menyisipkan penundaan pada permintaan klien. |
abort |
Spesifikasi untuk membatalkan permintaan klien. |
Penundaan
Spesifikasi cara permintaan klien ditunda sebagai bagian dari penyisipan kesalahan 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 tentang cara permintaan klien dibatalkan sebagai bagian dari injeksi kesalahan 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. Menentukan satu atau beberapa kondisi yang berlaku untuk aturan percobaan ulang ini. Nilai yang valid adalah:
Representasi JSON |
---|
{ "retryConditions": [ string ], "numRetries": integer } |
Kolom | |
---|---|
retryConditions[] |
|
numRetries |
Menentukan jumlah percobaan ulang yang diizinkan. Angka ini harus > 0. Jika tidak ditentukan, nilai defaultnya adalah 1. |
StatefulSessionAffinityPolicy
Spesifikasi untuk afinitas sesi stateful berbasis cookie di mana bidang tanggal 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 dengan baik.
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 RPC berikutnya.
Representasi JSON |
---|
{ "cookieTtl": string } |
Kolom | |
---|---|
cookieTtl |
Wajib. Nilai TTL cookie untuk header Set-Cookie yang dihasilkan oleh bidang data. Masa aktif cookie dapat ditetapkan ke nilai dari 1 hingga 86400 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 dalam project dan lokasi tertentu. |
|
Memperbarui parameter satu GrpcRoute. |