View a markdown version of this page

Updating/migrating ke Utusan 1.17 - AWS App Mesh

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Updating/migrating ke Utusan 1.17

penting

Pemberitahuan akhir dukungan: Pada 30 September 2026, AWS akan menghentikan dukungan untuk. AWS App Mesh Setelah 30 September 2026, Anda tidak akan lagi dapat mengakses AWS App Mesh konsol atau AWS App Mesh sumber daya. Untuk informasi selengkapnya, kunjungi posting blog ini Ber migrasi dari AWS App Mesh ke Amazon ECS Service Connect.

Layanan Penemuan Rahasia 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 SPIRE (dirilis Desember 2020). Ini adalah versi pertama yang dapat mendukung versi Utusan setelahnya1.16.

Perubahan ekspresi reguler

Mulai dari Envoy1.17, App Mesh mengonfigurasi Envoy untuk menggunakan mesin ekspresi reguler RE2 secara default. Perubahan ini terlihat jelas bagi sebagian besar pengguna, tetapi kecocokan di Rute atau Rute Gateway tidak lagi memungkinkan tampilan ke depan atau referensi balik dalam ekspresi reguler.

Pandangan positif dan negatif

Posi tif - Pandangan positif 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 kecocokan. Karena App Mesh tidak mendukung penggantian string regex, kami sarankan Anda menggantinya dengan kecocokan biasa.

(example)

Negatif - Melihat ke depan negatif 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 menggantinya 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 kembali

Referensi balik adalah cara untuk menulis ekspresi yang lebih pendek dengan mengulangi ke grup tanda kurung sebelumnya. Mereka memiliki bentuk ini.

(group1)(group2)\1

Garis miring ter \ balik diikuti dengan angka bertindak sebagai placeholder untuk grup tanda kurung ke-n dalam ekspresi. Dalam contoh ini, \1 digunakan sebagai cara alternatif untuk menulis (group1) untuk kedua kalinya.

(group1)(group2)(group1)

Ini dapat dihapus hanya dengan mengganti referensi balik dengan grup yang direferensikan seperti pada contoh.