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.
WebSocket Auswahlausdrücke
APIGateway verwendet Auswahlausdrücke, um den Anforderungs- und Antwortkontext auszuwerten und einen Schlüssel zu erzeugen. Der Schlüssel wird dann verwendet, um aus einer Reihe möglicher Werte auszuwählen, die in der Regel von Ihnen, dem API Entwickler, bereitgestellt werden. Der genaue Satz der unterstützten Variablen ist vom jeweiligen Ausdruck abhängig. Jeder Ausdruck wird nachstehend weiter erörtert.
Für alle Ausdrücke folgt die Sprache dem gleichen Satz von Regeln:
-
Einer Variable wird vorangestell
"$"
. -
Variablen können explizit durch geschweifte Klammern abgegrenzt werden, z. .,
"${request.body.version}-beta"
. -
Mehrere Variablen werden unterstützt, aber die Auswertung findet nur einmal statt (keine rekursive Auswertung).
-
Ein Dollarzeichen (
$
) kann durch die Escape-Zeichen"\"
geschützt werden. Dies ist besonders nützlich, wenn ein Ausdruck definiert wird, der dem reservierten$default
-Schlüssel zugeordnet wird, z. B."\$default"
. -
In einigen Fällen ist ein Musterformat erforderlich. In diesem Fall sollte der Ausdruck entsprechend
"/"
-Statuscodes mit Schrägstrichen ("/2\d\d/"
) verpackt werden, z. B.2
.XX
Themen
Routenantwort-Auswahlausdrücke
Eine Routenantwort wird für die Modellierung einer Antwort vom Backend zum Client verwendet. Denn WebSocket APIs eine Routenantwort ist optional. Wenn sie definiert ist, signalisiert sie dem API Gateway, dass es beim Empfang einer WebSocket Nachricht eine Antwort an einen Client zurückgeben soll.
Die Auswertung des Routenantwort-Auswahlausdrucks ergibt einen Routenantwort-Schlüssel. Schließlich wird dieser Schlüssel verwendet, um einen der Schlüssel auszuwählen, die mit dem RouteResponses
verknüpft sindAPI. Zurzeit wird jedoch nur der Schlüssel $default
unterstützt.
APIAusdrücke zur Schlüsselauswahl
Dieser Ausdruck wird ausgewertet, wenn der Dienst feststellt, dass die angegebene Anfrage nur dann fortgesetzt werden soll, wenn der Client einen gültigen APISchlüssel bereitstellt.
Zurzeit werden als einzigen Werte $request.header.x-api-key
und $context.authorizer.usageIdentifierKey
unterstützt.
APIZuordnung von Auswahlausdrücken
Dieser Ausdruck wird ausgewertet, um zu bestimmen, welche API Phase ausgewählt wird, wenn eine Anfrage über eine benutzerdefinierte Domäne gestellt wird.
Derzeit wird als einziger Wert unterstütz $request.basepath
.
WebSocketZusammenfassung des Auswahlausdrucks
In der folgenden Tabelle sind die Anwendungsfälle für Auswahlausdrücke zusammengefasst in WebSocketAPIs:
Auswahlausdrücke | Ausgewertet auf Schlüssel für | Hinweise | Beispielanwendungsfall |
---|---|---|---|
Api.RouteSelectionExpression |
Route.RouteKey |
$default wird als Catch-all-Route unterstützt. |
Leitet WebSocket Nachrichten auf der Grundlage des Kontextes einer Client-Anfrage weiter. |
Route.ModelSelectionExpression |
Schlüssel für Route.RequestModels |
Optional. Bei Angabe für Nicht-Proxy-Integrationen findet eine Modellvalidierung statt.
|
Führt die Anforderungsvalidierung dynamisch innerhalb derselben Route aus. |
Integration.TemplateSelectionExpression |
Schlüssel für Integration.RequestTemplates |
Optional. Kann für Nicht-Proxy-Integrationen zum Bearbeiten von eingehenden Nutzlasten bereitgestellt werden.
|
Dient zur Bearbeitung der Anforderung der aufrufenden Methode je nach den dynamischen Eigenschaften der Anforderung. |
Integration.IntegrationResponseSelectionExpression |
IntegrationResponse.IntegrationResponseKey |
Optional. Kann für Nicht-Proxy-Integrationen bereitgestellt werden. Dient als Musterabgleich für Fehlermeldungen (von Lambda) oder Statuscodes (von HTTP Integrationen).
|
Dient zum Bearbeiten der Antwort vom Backend. Wählen Sie, welche Aktion basierend auf der dynamischen Antwort des Backends ausgeführt werden soll (z. B. unterschiedliche Behandlung bestimmter Fehler). |
IntegrationResponse.TemplateSelectionExpression |
Schlüssel für IntegrationResponse.ResponseTemplates |
Optional. Kann für Nicht-Proxy-Integrationen bereitgestellt werden. $default wird unterstützt. |
In einigen Fällen kann eine dynamische Eigenschaft der Antwort verschiedene Transformationen innerhalb derselben Route und zugehörigen Integration vorgeben.
|
Route.RouteResponseSelectionExpression |
RouteResponse.RouteResponseKey |
Sollte bereitgestellt werden, um die bidirektionale Kommunikation für eine Route zu initiieren. WebSocket Zurzeit ist dieser Wert ausschließlich auf |
|
RouteResponse.ModelSelectionExpression |
Schlüssel für RouteResponse.RequestModels |
Wird derzeit nicht unterstützt. |