Tambahkan aturan ke gateway
Aturan Gateway memungkinkan Anda mengontrol perutean lalu lintas dan mengganti konfigurasi target di gateway Anda tanpa menerapkan kembali target. Anda membuat bundel konfigurasi yang mengganti perilaku target, lalu menggunakan aturan untuk mengontrol versi bundel mana yang berlaku untuk lalu lintas mana. Aturan juga mendukung permintaan perutean ke target yang berbeda berdasarkan jalur permintaan atau identitas pemanggil.
Gunakan aturan gateway untuk mencapai tujuan berikut:
-
Bereksperimenlah dengan versi bundel konfigurasi melalui A/B pengujian
-
Sematkan prinsip tertentu ke versi bundel konfigurasi untuk debugging
-
Rutekan lalu lintas ke target tertentu berdasarkan jalur permintaan atau identitas pemanggil
-
Tetapkan bundel konfigurasi default atau target untuk semua lalu lintas
Cara kerja aturan gateway
Setiap aturan gateway berisi komponen-komponen berikut:
| Komponen | Deskripsi |
|---|---|
|
Prioritas |
Sebuah integer dari 1 sampai 1.000.000. Angka yang lebih rendah menunjukkan prioritas yang lebih tinggi. Setiap nilai prioritas harus unik dalam gateway. |
|
Syarat (opsional) |
Kriteria yang menentukan apakah aturan cocok dengan permintaan. Aturan tanpa kondisi bertindak sebagai tangkapan semua yang cocok dengan semua lalu lintas. |
|
Tindakan (wajib) |
Tindakan yang harus diambil ketika aturan cocok. Anda dapat mengganti bundel konfigurasi, merutekan ke target tertentu, atau keduanya. |
|
Deskripsi (opsional) |
Deskripsi teks tentang tujuan aturan. |
Resolusi aturan
Gateway mengevaluasi aturan dalam urutan prioritas naik (angka lebih rendah terlebih dahulu). Gateway menyelesaikan setiap jenis tindakan secara independen menggunakan semantik pertandingan pertama.
Tabel berikut menunjukkan bagaimana gateway menyelesaikan aturan untuk permintaan sampel. Dalam contoh ini, peran QA mengirimkan permintaan ke/my-target-canary/chat.
| Prioritas | Ketentuan | Tindakan | Permintaan pertandingan? | Hasil |
|---|---|---|---|---|
|
100 |
Peran QA |
|
Ya |
Menyelesaikan |
|
200 |
Jalan |
|
Ya |
Menyelesaikan |
|
1000000 |
Tidak ada (catch-all) |
|
Ya |
Kedua jenis tindakan sudah diselesaikan. Dilewati. |
Hasil akhir: Permintaan menggunakan bundel versi A dan rute kemy-target-canary.
Tip
Tinggalkan celah di antara nomor prioritas (misalnya, 100, 200, 300) sehingga Anda dapat memasukkan aturan nanti tanpa menomori ulang aturan yang ada.
Ketentuan
Kondisi menentukan permintaan mana yang cocok dengan aturan. Aturan dapat memiliki maksimal 2 kondisi. Aturan tanpa kondisi cocok dengan semua lalu lintas.
Gateway mendukung jenis kondisi berikut:
- MatchPrincipals
-
Mencocokkan permintaan berdasarkan kepala IAM pemanggil.
anyOfDaftar ini berisi 1 hingga 100 entri. Setiap entri menentukaniamPrincipaldengan bidang berikut:-
arn— ARN utama IAM untuk dicocokkan. -
operator(opsional) — Operator perbandingan. Nilai yang valid adalahStringEquals(default) danStringLike. GunakanStringLikeuntuk pencocokan wildcard.
-
- MatchPaths
-
Mencocokkan permintaan berdasarkan jalur permintaan.
anyOfDaftar ini berisi 1 hingga 10 entri. Setiap entri harus menggunakan format/<targetName>/*, yang<targetName>cocok dengan nama target HTTP yang ada di gateway. Targetnya harus dalamReadykeadaan.matchPathsKondisi ini hanya didukung untuk gateway dengan target HTTP. Awalan jalur cadangan berikut tidak diperbolehkan:/mcp,,,/a2a/responses,/converse./.well-known
Logika evaluasi kondisi
-
Dalam tipe kondisi: Gateway menggunakan logika OR. Permintaan cocok jika memenuhi entri apa pun dalam
anyOfdaftar. -
Di seluruh jenis kondisi: Gateway menggunakan logika AND. Jika aturan memiliki keduanya
matchPrincipalsdanmatchPaths, permintaan harus cocok setidaknya satu entri dari setiap jenis kondisi.
Tindakan
Tindakan menentukan apa yang dilakukan gateway saat aturan cocok. Aturan dapat memiliki maksimal 2 tindakan.
Gateway mendukung jenis tindakan berikut:
- Penggantian bundel konfigurasi ()
configurationBundle -
Ganti bundel konfigurasi yang diterapkan pada lalu lintas yang cocok.
-
staticOverride— Sematkan semua lalu lintas yang cocok ke versi bundel konfigurasi tertentu. Tentukan bundel ARN dan ID versi. -
weightedOverride— Membagi lalu lintas antara dua versi bundel konfigurasi.trafficSplitDaftar harus berisi tepat 2 entri dengan bobot yang berjumlah 100. Bundel konfigurasi harus berada di akun yang sama dengan gateway.
-
- Target routing ()
routeToTarget -
Rute yang mencocokkan lalu lintas ke target tertentu. Target harus menggunakan protokol HTTP dan berada dalam
Readystatus.-
staticRoute— Rutekan semua lalu lintas yang cocok ke target tertentu berdasarkan nama. -
weightedRouteMembagi lalu lintas antara dua target.trafficSplitDaftar harus berisi tepat 2 entri dengan bobot yang berjumlah 100. Nama entri split lalu lintas harus unik.
-
Batas
Tabel berikut mencantumkan batas untuk aturan gateway.
| Sumber daya | Kuota |
|---|---|
|
Aturan per gateway |
20 |
|
Rentang prioritas |
1 hingga 1.000.000 |
|
Kondisi maksimum per aturan |
2 |
|
Tindakan maksimum per aturan |
2 |
|
|
100 |
|
|
10 |
|
|
Tepat 2 |
|
|
1 hingga 99 |