ExtensionChain

Satu wrapper rantai ekstensi yang berisi kondisi pencocokan dan ekstensi yang akan dieksekusi.

Representasi JSON
{
  "name": string,
  "matchCondition": {
    object (MatchCondition)
  },
  "extensions": [
    {
      object (Extension)
    }
  ]
}
Kolom
name

string

Wajib. Nama untuk rantai ekstensi ini. Nama dicatat sebagai bagian dari log permintaan HTTP. Nama harus sesuai dengan RFC-1034, dibatasi untuk huruf kecil, angka, dan tanda hubung, serta dapat memiliki panjang maksimum 63 karakter. Selain itu, karakter pertama harus berupa huruf dan karakter terakhir berupa huruf atau angka.

matchCondition

object (MatchCondition)

Wajib. Kondisi saat rantai ini dipanggil untuk permintaan.

extensions[]

object (Extension)

Wajib. Kumpulan ekstensi yang akan dieksekusi untuk permintaan yang cocok. Setidaknya diperlukan satu ekstensi. Hingga 3 ekstensi dapat ditentukan untuk setiap rantai ekstensi untuk resource LbTrafficExtension. Rantai LbRouteExtension dibatasi hingga 1 ekstensi per rantai ekstensi.

MatchCondition

Kondisi saat rantai ini dipanggil untuk permintaan.

Representasi JSON
{
  "celExpression": string
}
Kolom
celExpression

string

Wajib. Ekspresi Common Expression Language (CEL) yang digunakan untuk mencocokkan permintaan yang rantai ekstensi-nya dieksekusi.

Untuk mengetahui informasi selengkapnya, lihat referensi bahasa pencocok CEL.

Ekstensi

Satu ekstensi dalam rantai yang akan dieksekusi untuk permintaan yang cocok.

Representasi JSON
{
  "name": string,
  "authority": string,
  "service": string,
  "supportedEvents": [
    enum (EventType)
  ],
  "timeout": string,
  "failOpen": boolean,
  "forwardHeaders": [
    string
  ]
}
Kolom
name

string

Wajib. Nama untuk ekstensi ini. Nama dicatat sebagai bagian dari log permintaan HTTP. Nama harus sesuai dengan RFC-1034, dibatasi untuk huruf kecil, angka, dan tanda hubung, serta dapat memiliki panjang maksimum 63 karakter. Selain itu, karakter pertama harus berupa huruf dan karakter terakhir berupa huruf atau angka.

authority

string

Opsional. Header :authority dalam permintaan gRPC yang dikirim dari Envoy ke layanan ekstensi. Diperlukan untuk Ekstensi info.

service

string

Wajib. Referensi ke layanan yang menjalankan ekstensi.

Saat ini, hanya ekstensi info yang didukung di sini.

Untuk mengonfigurasi ekstensi info, service harus berupa referensi yang sepenuhnya memenuhi syarat ke layanan backend dalam format: https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/backendServices/{backendService} atau https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices/{backendService}.

supportedEvents[]

enum (EventType)

Opsional. Kumpulan peristiwa selama pemrosesan permintaan atau respons yang memanggil ekstensi ini. Kolom ini wajib diisi untuk resource LbTrafficExtension. Nilai ini tidak boleh ditetapkan untuk resource LbRouteExtension.

timeout

string (Duration format)

Opsional. Menentukan waktu tunggu untuk setiap pesan di streaming. Waktu tunggu habis harus antara 10-1.000 milidetik. Diperlukan untuk Ekstensi info.

Durasi dalam detik dengan maksimal sembilan digit pecahan, yang diakhiri dengan 's'. Contoh: "3.5s".

failOpen

boolean

Opsional. Menentukan perilaku proxy jika panggilan ke ekstensi gagal atau waktu tunggunya habis.

Jika ditetapkan ke TRUE, pemrosesan permintaan atau respons akan berlanjut tanpa error. Ekstensi berikutnya dalam rantai ekstensi juga akan dijalankan. Jika ditetapkan ke FALSE atau setelan default FALSE digunakan, salah satu hal berikut akan terjadi:

  • Jika header respons belum dikirim ke klien downstream, error 500 umum akan ditampilkan ke klien. Respons error dapat disesuaikan dengan mengonfigurasi respons error kustom di load balancer.

  • Jika header respons telah dikirim, aliran data HTTP ke klien downstream akan direset.

forwardHeaders[]

string

Opsional. Daftar header HTTP yang akan diteruskan ke ekstensi (dari klien atau backend). Jika dihilangkan, semua header akan dikirim. Setiap elemen adalah string yang menunjukkan nama header.

EventType

Bagian permintaan atau respons yang memanggil ekstensi.

Enum
EVENT_TYPE_UNSPECIFIED Nilai tidak ditentukan. Jangan gunakan.
REQUEST_HEADERS Jika disertakan dalam supportedEvents, ekstensi akan dipanggil saat header permintaan HTTP tiba.
REQUEST_BODY Jika disertakan dalam supportedEvents, ekstensi akan dipanggil saat isi permintaan HTTP tiba.
RESPONSE_HEADERS Jika disertakan dalam supportedEvents, ekstensi akan dipanggil saat header respons HTTP tiba.
RESPONSE_BODY Jika disertakan dalam supportedEvents, ekstensi akan dipanggil saat isi respons HTTP tiba.
REQUEST_TRAILERS Jika disertakan dalam supportedEvents, ekstensi akan dipanggil saat trailer permintaan HTTP tiba.
RESPONSE_TRAILERS Jika disertakan dalam supportedEvents, ekstensi akan dipanggil saat trailer respons HTTP tiba.