Aktualisierung/Migration auf Envoy 1.17 - AWS App Mesh

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Aktualisierung/Migration auf Envoy 1.17

Wichtig

Hinweis zum Ende des Supports: Am 30. September 2026 wird der Support für eingestellt. AWS AWS App Mesh Nach dem 30. September 2026 können Sie nicht mehr auf die AWS App Mesh Konsole oder die Ressourcen zugreifen. AWS App Mesh Weitere Informationen finden Sie in diesem Blogbeitrag Migration von AWS App Mesh zu Amazon ECS Service Connect.

Secret Discovery Service mit SPIRE

Wenn Sie SPIRE (SPIFFERuntime Environment) mit App Mesh verwenden, um Vertrauenszertifikate an Ihre Dienste zu verteilen, stellen Sie sicher, dass Sie mindestens die Version 0.12.0 des SPIREAgenten verwenden (veröffentlicht im Dezember 2020). Dies ist die erste Version, die spätere Envoy-Versionen unterstützen kann. 1.16

Änderungen regulärer Ausdrücke

Ab Envoy konfiguriert App Mesh Envoy so1.17, dass es standardmäßig die Engine für RE2reguläre Ausdrücke verwendet. Diese Änderung ist für die meisten Benutzer offensichtlich, aber Treffer in Routes oder Gateway Routes erlauben keine Vorausschau- oder Rückverweise mehr in regulären Ausdrücken.

Positiver und negativer Ausblick

Positiv — Ein positiver Ausblick ist ein Ausdruck in Klammern, der wie folgt beginnt: ?=

(?=example)

Diese sind bei der Ersetzung von Zeichenketten am nützlichsten, da sie den Abgleich einer Zeichenfolge ermöglichen, ohne dass die Zeichen als Teil des Abgleichs verwendet werden. Da App Mesh das Ersetzen von Regex-Zeichenketten nicht unterstützt, empfehlen wir, diese durch reguläre Treffer zu ersetzen.

(example)

Negativ — Ein negativer Look-Ahead ist ein Ausdruck in Klammern, der mit beginnt. ?!

ex(?!amp)le

Die Ausdrücke in Klammern werden verwendet, um zu bestätigen, dass ein Teil des Ausdrucks nicht mit einer bestimmten Eingabe übereinstimmt. In den meisten Fällen können Sie diese durch einen Nullquantifizierer ersetzen.

ex(amp){0}le

Wenn der Ausdruck selbst eine Zeichenklasse ist, können Sie die gesamte Klasse negieren und sie damit als optional markieren. ?

prefix(?![0-9])suffix => prefix[^0-9]?suffix

Abhängig von Ihrem Anwendungsfall können Sie möglicherweise auch Ihre Routen ändern, um dies zu handhaben.

{ "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" } } ] } } } }

Die erste Routenübereinstimmung sucht nach einem Header, der mit „Präfix“ beginnt, aber nicht gefolgt von „Suffix“. Die zweite Route entspricht allen anderen Headern, die mit „Präfix“ beginnen, einschließlich solcher, die mit „Suffix“ enden. Stattdessen können diese auch umgekehrt werden, um den negativen Look-Ahead-Effekt zu beseitigen.

{ "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" } } ] } } } }

In diesem Beispiel werden die Routen umgekehrt, um Headern, die mit „Suffix“ enden, eine höhere Priorität einzuräumen. Alle anderen Header, die mit „Präfix“ beginnen, werden in der Route mit niedrigerer Priorität abgeglichen.

Rückverweise

Ein Rückverweis ist eine Möglichkeit, kürzere Ausdrücke zu schreiben, indem sie zu einer vorherigen Gruppe in Klammern wiederholt werden. Sie haben dieses Formular.

(group1)(group2)\1

Ein umgekehrter Schrägstrich, \ gefolgt von einer Zahl, dient als Platzhalter für die n-te Gruppe in Klammern im Ausdruck. In diesem Beispiel \1 wird es als alternative Methode verwendet, um ein zweites Mal zu schreiben. (group1)

(group1)(group2)(group1)

Diese können entfernt werden, indem einfach der Rückverweis durch die Gruppe ersetzt wird, auf die verwiesen wird, wie im Beispiel.