Richten Sie eine WebSocket API Integrationsantwort in API Gateway ein - APIAmazon-Gateway

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.

Richten Sie eine WebSocket API Integrationsantwort in API Gateway ein

Der folgende Abschnitt bietet einen kurzen Überblick über Integrationsantworten für WebSocket API und wie eine Integrationsantwort für a eingerichtet wird WebSocket API.

Übersicht über Integrationsantworten

APIDie Integrationsreaktion von Gateway ist eine Möglichkeit, die Antwort eines Back-End-Dienstes zu modellieren und zu manipulieren. Es gibt einige Unterschiede zwischen der Einrichtung einer Antwort und REST API einer WebSocket API Integrationsantwort, aber konzeptionell ist das Verhalten dasselbe.

WebSocket Routen können für bidirektionale oder unidirektionale Kommunikation konfiguriert werden.

  • Wenn eine Route für bidirektionale Kommunikation konfiguriert ist, können Sie mit einer Integrationsantwort Transformationen für die zurückgegebene Nachrichtennutzlast konfigurieren, ähnlich wie bei Integrationsantworten für. REST APIs

  • Wenn eine Route für unidirektionale Kommunikation konfiguriert ist, wird unabhängig von der Konfiguration der Integrationsantwort nach der Verarbeitung der Nachricht keine Antwort über den WebSocket Kanal zurückgegeben.

APIDas Gateway leitet die Backend-Antwort nicht an die Routenantwort weiter, es sei denn, Sie richten eine Routenantwort ein. Weitere Informationen zum Einrichten einer Routenreaktion finden Sie unter Richten Sie Routenantworten für WebSocket APIs in API Gateway ein.

Integrationsantworten für bidirektionale Kommunikation

Integrationen lassen sich in Proxy-Integrationen und Nicht-Proxy-Integrationen unterteilen.

Wichtig

Bei Proxy-Integrationen leitet API Gateway die Backend-Ausgabe automatisch als vollständige Nutzlast an den Aufrufer weiter. Es gibt keine Integrationsantwort.

Bei Nicht-Proxy-Integrationen müssen Sie mindestens eine Integrationsantwort einrichten:

  • Im Idealfall sollte eine Ihrer Integrationsantworten als Catch-all-Methode dienen, wenn keine explizite Wahl vorgenommen werden kann. Dieser Standardfall wird durch Festlegen des Integrationsantwort-Schlüssels dargestell $default.

  • In allen anderen Fällen fungiert der Integrationsantwort-Schlüssel als regulärer Ausdruck. Er sollte dem Format folge "/expression/".

Für Nicht-Proxy-Integrationen: HTTP

  • APIGateway versucht, den HTTP Statuscode der Backend-Antwort abzugleichen. Der Integrationsantwort-Schlüssel fungiert in diesem Fall als regulärer Ausdruck. Wenn keine Übereinstimmung gefunden wird, dann wird $default als Integrationsantwort gewählt.

  • Der Vorlagen-Auswahlausdruck funktioniert wie oben beschrieben identisch. Zum Beispiel:

    • /2\d\d/: Erfolgreiche Antworten empfangen und transformieren

    • /4\d\d/: Fehler (ungültige Anforderung) empfangen und transformieren

    • $default: Alle unerwarteten Antworten empfangen und transformieren

Weitere Informationen zu Vorlagen-Auswahlausdrücken finden Sie unter Vorlagen-Auswahlausdrücke.

Richten Sie mit der API Gateway-Konsole eine Integrationsantwort ein

So richten Sie WebSocket API mithilfe der API Gateway-Konsole eine Route-Integrationsantwort für eine ein:

  1. Melden Sie sich bei der API Gateway-Konsole unter https://console.aws.amazon.com/apigatewayan.

  2. Wählen Sie Ihre WebSocket API und wählen Sie Ihre Route.

  3. Wählen Sie die Registerkarte Integration request (Integrationsanforderung) und dann im Abschnitt Integration request settings (Einstellungen für Integrationsanforderungen) die Option Create integration response (Integrationsantwort erstellen) aus.

  4. Geben Sie für Antwortschlüssel einen Wert ein, der nach Auswertung des Ausdrucks der Antwortauswahl im Antwortschlüssel der ausgehenden Nachricht zu finden ist. Sie können beispielsweise /4\d\d/ eingeben, um Anforderungsfehler zu empfangen und umzuwandeln, oder Sie können $default eingeben, um alle Antworten zu empfangen und umzuwandeln, die dem Ausdruck für die Vorlagenauswahl entsprechen.

  5. Geben Sie unter Template selection expression (Ausdruck für die Vorlagenauswahl) einen Auswahlausdruck ein, um die ausgehende Nachricht auszuwerten.

  6. Wählen Sie Create response (Antwort erstellen) aus.

  7. Sie können auch eine Zuordnungsvorlage definieren, um Transformationen Ihrer Payload für zurückgegebene Nachrichten zu konfigurieren. Wählen Sie Create template (Vorlage erstellen) aus.

  8. Geben Sie einen Schlüsselnamen ein. Wenn Sie den Standardausdruck für die Vorlagenauswahl auswählen, geben Sie \$default ein.

  9. Geben Sie unter Response template (Antwortvorlage) Ihre Zuordnungsvorlage in den Code-Editor ein.

  10. Wählen Sie Create template (Vorlage erstellen) aus.

  11. Wählen Sie Deploy API, um Ihre bereitzustellenAPI.

Verwenden Sie den folgenden wscat-Befehl, um eine Verbindung zu Ihrem herzustellen. API Mehr über wscat erfahren Sie unter Wird verwendetwscat, um eine Verbindung zu einer WebSocket API herzustellen und Nachrichten an diese zu senden.

wscat -c wss://api-id.execute-api.us-east-2.amazonaws.com/test

Wenn Sie Ihre Route aufrufen, sollte die Payload der zurückgegebenen Nachricht zurückgegeben werden.

Richten Sie eine Integrationsantwort mit dem ein AWS CLI

Um eine Integrationsantwort für eine WebSocket API mithilfe des Befehls einzurichten, AWS CLI rufen Sie den create-integration-responseBefehl auf. Der folgende CLI Befehl zeigt ein Beispiel für die Erstellung einer $default Integrationsantwort:

aws apigatewayv2 create-integration-response \ --api-id vaz7da96z6 \ --integration-id a1b2c3 \ --integration-response-key '$default'