Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memperbarui/memigrasi ke Utusan 1.17
Secret Discovery Service dengan SPIRE
Jika Anda menggunakan SPIRE (SPIFFE Runtime Environment) dengan App Mesh untuk mendistribusikan sertifikat kepercayaan ke layanan Anda, verifikasi bahwa Anda menggunakan setidaknya versi 0.12.0
agen SPIRE1.16
Perubahan ekspresi reguler
Mulai dari Envoy1.17
, App Mesh mengonfigurasi Envoy untuk menggunakan mesin ekspresi reguler RE2 secara default
Positif dan Negatif melihat ke depan
Positif - Pandangan positif ke depan adalah ekspresi tanda kurung yang dimulai dengan: ?=
(?=example)
Ini memiliki utilitas paling banyak saat melakukan penggantian string karena memungkinkan pencocokan string tanpa menggunakan karakter sebagai bagian dari pertandingan. Karena App Mesh tidak mendukung penggantian string regex, kami sarankan Anda menggantinya dengan kecocokan biasa.
(example)
Negatif - Pandangan negatif ke depan adalah ekspresi tanda kurung yang dimulai dengan. ?!
ex(?!amp)le
Ekspresi tanda kurung digunakan untuk menegaskan bahwa bagian dari ekspresi tidak cocok dengan input yang diberikan. Dalam kebanyakan kasus, Anda dapat mengganti ini dengan kuantifier nol.
ex(amp){0}le
Jika ekspresi itu sendiri adalah kelas karakter, Anda dapat meniadakan seluruh kelas dan menandainya opsional menggunakan?
.
prefix(?![0-9])suffix => prefix[^0-9]?suffix
Tergantung pada kasus penggunaan Anda, Anda mungkin juga dapat mengubah rute Anda untuk menangani ini.
{ "routeSpec": { "priority": 0, "httpRoute": { "match": { "headers": [ { "name": "x-my-example-header", "match": { "regex": "^prefix(?!suffix)" } } ] } } } } { "routeSpec": { "priority": 1, "httpRoute": { "match": { "headers": [ { "name": "x-my-example-header", "match": { "regex": "^prefix" } } ] } } } }
Pencocokan rute pertama mencari header yang dimulai dengan “awalan” tetapi tidak diikuti oleh “akhiran.” Rute kedua bertindak untuk mencocokkan semua header lain yang dimulai dengan “awalan,” termasuk yang diakhiri dengan “akhiran.” Sebaliknya, ini juga dapat dibalik sebagai cara untuk menghilangkan pandangan negatif ke depan.
{ "routeSpec": { "priority": 0, "httpRoute": { "match": { "headers": [ { "name": "x-my-example-header", "match": { "regex": "^prefix.*?suffix" } } ] } } } } { "routeSpec": { "priority": 1, "httpRoute": { "match": { "headers": [ { "name": "x-my-example-header", "match": { "regex": "^prefix" } } ] } } } }
Contoh ini membalikkan rute untuk memberikan prioritas yang lebih tinggi ke header yang diakhiri dengan “akhiran”, dan semua header lain yang dimulai dengan “awalan” dicocokkan di rute prioritas rendah.
Referensi belakang
Referensi balik adalah cara untuk menulis ekspresi yang lebih pendek dengan mengulangi ke grup bertanda kurung sebelumnya. Mereka memiliki bentuk ini.
(group1)(group2)\1
Sebuah garis miring terbalik \
diikuti oleh angka bertindak sebagai pengganti untuk kelompok tanda kurung ke-n dalam ekspresi. Dalam contoh ini, \1
digunakan sebagai cara alternatif untuk (group1)
menulis kedua kalinya.
(group1)(group2)(group1)
Ini dapat dihapus hanya dengan mengganti referensi balik dengan grup yang direferensikan seperti pada contoh.