- Resource: GrpcRoute
- RouteRule
- RouteMatch
- MethodMatch
- Jenis
- HeaderMatch
- Jenis
- RouteAction
- Tujuan
- FaultInjectionPolicy
- Tunda
- Batalkan
- RetryPolicy
- StatefulSessionAffinityPolicy
- Metode
Resource: GrpcRoute
GrpcRoute adalah resource yang menentukan cara traffic gRPC dirutekan oleh resource Mesh atau Gateway.
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 yang ditentukan server untuk resource ini |
createTime |
Hanya output. Stempel waktu saat resource dibuat. Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan maksimal sembilan digit fraksional. Contoh: |
updateTime |
Hanya output. Stempel waktu saat resource diupdate. Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan maksimal sembilan digit fraksional. Contoh: |
labels |
Opsional. Kumpulan tag label yang terkait dengan resource GrpcRoute. Objek yang berisi daftar pasangan |
description |
Opsional. Deskripsi teks bebas resource. Panjang maksimal 1024 karakter. |
hostnames[] |
Wajib. Nama host layanan dengan port opsional yang digunakan rute ini untuk mendeskripsikan lalu lintas. Format: {i>Host<i} adalah nama domain dari {i>host<i} jaringan yang sepenuhnya memenuhi syarat. Hal ini sesuai 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" yang merupakan 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 lain 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 sesuai dengan aturan ini (yaitu "xds:///service:123"), jika tidak, klien gRPC 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 disalurkan 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 mengarahkan permintaan yang dilayani oleh gateway. Setiap referensi gateway harus cocok dengan pola: |
rules[] |
Wajib. Daftar aturan mendetail yang menentukan cara mengarahkan lalu lintas. Dalam satu GrpcRoute, GrpcRoute.RouteAction yang terkait dengan GrpcRoute.RouteRule pertama yang cocok akan dijalankan. Minimal satu aturan harus diberikan. |
RouteRule
Menjelaskan cara mengarahkan lalu lintas.
Representasi JSON |
---|
{ "matches": [ { object ( |
Kolom | |
---|---|
matches[] |
Opsional. Pencocokan menentukan kondisi yang digunakan untuk mencocokkan aturan terhadap permintaan gRPC yang masuk. Setiap kecocokan bersifat independen. Artinya, aturan ini akan dicocokkan jika SALAH SATU dari kecocokan terpenuhi. Jika tidak ada kolom kecocokan yang ditentukan, aturan ini akan mencocokkan traffic tanpa syarat. |
action |
Wajib. Aturan terperinci yang menentukan cara mengarahkan lalu lintas. Kolom ini wajib diisi. |
RouteMatch
Kriteria untuk mencocokkan traffic. RouteMatch akan dianggap cocok jika semua kolom yang disediakan 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 mencocokkan 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 kecocokan peka huruf besar/kecil. Nilai defaultnya adalah true. caseSensitive tidak boleh digunakan dengan jenis REGULAR_EKSPRESI. |
Jenis
Jenis kecocokan.
Enum | |
---|---|
TYPE_UNSPECIFIED |
Tidak ditentukan. |
EXACT |
Hanya akan cocok dengan nama persis yang diberikan. |
REGULAR_EXPRESSION |
Akan menafsirkan grpcMethod dan grpcService sebagai regexe. 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 cocok dengan 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 di mana traffic harus diteruskan. Jika beberapa tujuan ditentukan, traffic akan dibagi di antara Layanan Backend sesuai dengan kolom bobot tujuan tersebut. |
faultInjectionPolicy |
Opsional. Spesifikasi untuk injeksi fault yang diperkenalkan ke traffic untuk menguji ketahanan klien terhadap kegagalan layanan tujuan. Sebagai bagian dari injeksi kesalahan, saat klien mengirim permintaan ke tujuan, penundaan dapat terjadi pada sebagian persentase permintaan sebelum mengirim permintaan tersebut ke layanan tujuan. Demikian pula, permintaan dari klien dapat dibatalkan untuk sebagian persentase permintaan. waktu tunggu dan tryPolicy akan diabaikan oleh klien yang dikonfigurasi dengan faultExtractionPolicy |
timeout |
Opsional. Menentukan waktu tunggu untuk rute yang dipilih. Waktu tunggu dihitung sejak permintaan selesai diproses (yaitu akhir streaming) hingga respons selesai diproses. Waktu tunggu mencakup semua percobaan ulang. Durasi dalam detik dengan maksimal sembilan digit pecahan, 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 didefinisikan sebagai periode saat tidak ada byte yang dikirim atau diterima di koneksi upstream atau downstream. Jika tidak disetel, waktu tunggu tidak ada aktivitas default adalah 1 jam. Jika disetel ke 0d, waktu tunggu akan dinonaktifkan. Durasi dalam detik dengan maksimal sembilan digit pecahan, diakhiri dengan ' |
Tujuan
Tujuan tempat lalu lintas 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 menjadi tujuan perutean traffic. Harus merujuk ke BackendService atau ServiceDirectoryService. |
weight |
Opsional. Menentukan proporsi permintaan yang diteruskan ke backend yang dirujuk oleh kolom serviceName. Hal ini dihitung sebagai: - weight/Sum(bobot dalam daftar tujuan ini). Untuk nilai bukan nol, mungkin ada beberapa epsilon dari proporsi yang tepat yang didefinisikan 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 harus ditentukan untuk semuanya. Jika bobot tidak ditentukan untuk semua layanan, traffic akan didistribusikan dalam proporsi yang sama ke semua layanan. |
FaultInjectionPolicy
Spesifikasi untuk injeksi fault yang diperkenalkan ke traffic untuk menguji ketahanan klien terhadap kegagalan layanan tujuan. Sebagai bagian dari injeksi kesalahan, saat klien mengirim permintaan ke tujuan, penundaan dapat terjadi pada sebagian persentase permintaan sebelum mengirim permintaan tersebut ke layanan tujuan. Demikian pula, permintaan dari klien dapat dibatalkan untuk sebagian persentase permintaan.
Representasi JSON |
---|
{ "delay": { object ( |
Kolom | |
---|---|
delay |
Spesifikasi untuk memasukkan penundaan ke permintaan klien. |
abort |
Spesifikasi untuk membatalkan permintaan klien. |
Penundaan
Spesifikasi tentang bagaimana permintaan klien tertunda sebagai bagian dari injeksi 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, diakhiri dengan ' |
percentage |
Persentase traffic tempat penundaan akan dimasukkan. Nilai harus antara [0, 100] |
Batalkan
Spesifikasi tentang bagaimana 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. Nilainya 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 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 responsif.
Library mesh tanpa proxy gRPC atau proxy file bantuan 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 dibuat oleh bidang data. Masa aktif cookie dapat ditetapkan ke nilai mulai dari 1 hingga 86.400 detik (24 jam) inklusif. Durasi dalam detik dengan maksimal sembilan digit pecahan, 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 GrpcRoute tunggal. |