Routenantworten für eine WebSocket-API in API Gateway einrichten
Für WebSocket-Routen kann bidirektionale oder unidirektionale Kommunikation konfiguriert werden. API-Gateway übergibt die Backend-Antwort nicht über die Routenantwort, es sei denn, Sie haben eine Routenantwort eingerichtet.
Sie können die $default
-Routenantwort nur für WebSocket-APIs definieren. Sie können eine Integrationsantwort verwenden, um die Antwort von einem Backend-Service zu manipulieren. Weitere Informationen finden Sie unter Übersicht über Integrationsantworten.
Sie können Routenantworten und Antwortauswahlausdrücke über die API-Gateway-Konsole oder die AWS CLI oder ein AWS SDK konfigurieren.
Weitere Informationen über Routenantwort-Auswahlausdrücke finden Sie unter Routenantwort-Auswahlausdrücke.
Themen
Routenantwort mit der API Gateway-Konsole einrichten
So richten Sie eine Routenantwort für die $default
-Route mit einer Integration der Lambda-Proxy-Funktion über die API-Gateway-Konsole ein:
-
Melden Sie sich bei der API-Gateway-Konsole an. Wählen Sie eine WebSocket-API mit einer Integration der Lambda-Proxy-Funktion auf der
$default
-Route aus. -
Wählen Sie unter Routes (Routen) die
$default
-Route aus. -
Wählen Sie im Routenübersichtsbereich Route Request (Routenanforderung) aus.
-
Geben Sie unter Route Request Modeling (Routenanforderungsmodellierung) den Wert
default
als Model Selection Expression (Modellauswahlausdruck) ein und klicken Sie auf das Häkchensymbol. -
Wählen Sie Add model (Modell hinzufügen) aus, geben Sie
default
als New Model Key (Neuer Modellschlüssel) ein und klicken Sie auf das Häkchensymbol. -
Wählen Sie Route Overview (Routenübersicht) aus.
-
Wählen Sie Add integration response (Integrationsantwort hinzufügen) aus.
-
Wählen Sie Route Response (Routenantwort) aus.
-
Geben Sie unter Response Modeling (Antwortmodellierung) den Ausdruck
default
als Ausdruck für die Antwortauswahl ein. -
Geben Sie unter Route Responses (Routenantworten) den Wert
$default
ein. -
Wählen Sie in der Registerkarte Actions (Aktionen) die Option Deploy API (API bereitstellen) aus.
-
Stellen Sie mit dem folgenden wscat
-Befehl eine Verbindung mit Ihrer API her. Mehr über wscat
erfahren Sie unter Verwenden von wscat zum Herstellen einer Verbindung mit einer WebSocket-API und Senden von Nachrichten an sie.wscat -c wss://
api-id
.execute-api.us-east-2
.amazonaws.com/test
Drücken Sie die Eingabetaste, um die Standardroute aufzurufen. Der Hauptteil Ihrer Lambda-Funktion sollte zurückgegeben werden.
Einrichten einer Routenantwort mithilfe der AWS CLI
Um eine Routenantwort für eine WebSocket-API mithilfe der AWS CLI einzurichten, rufen Sie wie im folgenden Beispiel gezeigt den Befehl create-route-response
auf. Sie können die API-ID und Routing-ID identifizieren, indem Sie get-apis
und get-routes
aufrufen.
aws apigatewayv2 create-route-response \ --api-id
aabbccddee
\ --route-id1122334
\ --route-response-key '$default'
Beispielausgabe:
{ "RouteResponseId": "abcdef", "RouteResponseKey": "$default" }