Routenantworten für eine WebSocket-API in API Gateway einrichten - Amazon API Gateway

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.

Anmerkung

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.

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:

  1. 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.

  2. Wählen Sie unter Routes (Routen) die $default-Route aus.

  3. Wählen Sie im Routenübersichtsbereich Route Request (Routenanforderung) aus.

  4. Geben Sie unter Route Request Modeling (Routenanforderungsmodellierung) den Wert default als Model Selection Expression (Modellauswahlausdruck) ein und klicken Sie auf das Häkchensymbol.

  5. 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.

  6. Wählen Sie Route Overview (Routenübersicht) aus.

  7. Wählen Sie Add integration response (Integrationsantwort hinzufügen) aus.

  8. Wählen Sie Route Response (Routenantwort) aus.

  9. Geben Sie unter Response Modeling (Antwortmodellierung) den Ausdruck default als Ausdruck für die Antwortauswahl ein.

  10. Geben Sie unter Route Responses (Routenantworten) den Wert $default ein.

  11. Wählen Sie in der Registerkarte Actions (Aktionen) die Option Deploy API (API bereitstellen) aus.

  12. 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-id 1122334 \ --route-response-key '$default'

Beispielausgabe:

{ "RouteResponseId": "abcdef", "RouteResponseKey": "$default" }