View a markdown version of this page

Updating/migrating zu 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.

Updating/migrating zu Envoy 1.17

Wichtig

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

Geheimer Ermittlungsdienst mit SPIRE

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

Änderungen an regulären Ausdrücken

Ausgehend von Envoy konfiguriert App Mesh Envoy so1.17, dass es standardmäßig die RE2-Engine für reguläre Ausdrücke verwendet. Diese Änderung ist für die meisten Benutzer offensichtlich, aber bei Übereinstimmungen in Routes oder Gateway Routes sind keine Vorausschau- oder Rückverweise in regulären Ausdrücken mehr möglich.

Positiver und negativer Ausblick

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

(?=example)

Diese sind am nützlichsten beim Ersetzen von Zeichenketten, da sie es ermöglichen, eine Zeichenfolge abzugleichen, ohne dass die Zeichen als Teil der Übereinstimmung verwendet werden. Da App Mesh das Ersetzen von Regex-Zeichenfolgen 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 Null-Quantifizierer ersetzen.

ex(amp){0}le

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

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 bewältigen.

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

Beim ersten Routen-Match wird nach einem Header gesucht, der mit „Präfix“ beginnt, aber nicht mit „Suffix“ folgt. Die zweite Route entspricht allen anderen Headern, die mit „Präfix“ beginnen, einschließlich derer, die mit „Suffix“ enden. Stattdessen können diese Werte auch rückgängig gemacht werden, um den negativen Look-Ahead zu entfernen.

{ "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ückseitige Verweise

Ein Rückverweis ist eine Möglichkeit, kürzere Ausdrücke zu schreiben, indem eine vorherige Gruppe in Klammern wiederholt wird. 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 als alternative Methode verwendet, um ein zweites Mal zu schreiben. (group1)

(group1)(group2)(group1)

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