Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Updating/migrating a Envoy 1.17
Importante
Avviso di fine del supporto: il 30 settembre 2026, AWS interromperà il supporto per. AWS App Mesh Dopo il 30 settembre 2026, non potrai più accedere alla AWS App Mesh console o alle risorse. AWS App Mesh Per ulteriori informazioni, consulta questo post del blog Migrazione da AWS App Mesh ad Amazon ECS Service Connect.
Secret Discovery Service con SPIRE
Se utilizzi SPIRE (SPIFFE Runtime Environment) con App Mesh per distribuire certificati di fiducia ai tuoi servizi, verifica di utilizzare almeno la versione 0.12.0 dell'agente SPIRE 1.16
Modifiche alle espressioni regolari
A partire da Envoy1.17, App Mesh configura Envoy per utilizzare il motore di espressioni regolari RE2
Look-ahead positivo e negativo
Positivo: un look-ahead positivo è un'espressione tra parentesi che inizia con: ?=
(?=example)
Sono le più utili quando si esegue la sostituzione delle stringhe perché consentono di abbinare una stringa senza consumare i caratteri come parte della corrispondenza. Poiché App Mesh non supporta la sostituzione delle stringhe regex, ti consigliamo di sostituirle con corrispondenze regolari.
(example)
Negativo: un look-ahead negativo è un'espressione tra parentesi che inizia con. ?!
ex(?!amp)le
Le espressioni tra parentesi vengono utilizzate per affermare che una parte dell'espressione non corrisponde a un determinato input. Nella maggior parte dei casi, è possibile sostituirli con un quantificatore zero.
ex(amp){0}le
Se l'espressione stessa è una classe di caratteri, puoi negare l'intera classe e contrassegnarla come opzionale usando. ?
prefix(?![0-9])suffix => prefix[^0-9]?suffix
A seconda del caso d'uso, potresti anche essere in grado di modificare i percorsi per gestirlo.
{ "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" } } ] } } } }
La prima corrispondenza tra i percorsi cerca un'intestazione che inizi con «prefisso» ma non seguita da «suffisso». La seconda route funziona in modo da corrispondere a tutte le altre intestazioni che iniziano con «prefisso», incluse quelle che terminano con «suffisso». Invece, queste possono anche essere invertite per rimuovere il look-ahead negativo.
{ "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" } } ] } } } }
Questo esempio inverte i percorsi per dare una priorità più alta alle intestazioni che terminano con «suffix» e tutte le altre intestazioni che iniziano con «prefix» corrispondono nella route con priorità inferiore.
Riferimenti a ritroso
Un riferimento a ritroso è un modo per scrivere espressioni più brevi ripetendole in un gruppo precedente tra parentesi. Hanno questa forma.
(group1)(group2)\1
Una barra rovesciata \ seguita da un numero funge da segnaposto per l'n-esimo gruppo tra parentesi nell'espressione. In questo esempio, \1 viene utilizzato come metodo alternativo per scrivere una seconda volta. (group1)
(group1)(group2)(group1)
Questi possono essere rimossi semplicemente sostituendo il riferimento a ritroso con il gruppo a cui si fa riferimento come nell'esempio.