Direkt zum Inhalt

Wie kann ich Verbindungsfehler der API Gateway WebSocket API beheben?

Lesedauer: 3 Minute
0

Wenn ich versuche, eine Verbindung zu meiner Amazon API Gateway WebSocket-API herzustellen, erhalte ich eine Fehlermeldung.

Kurzbeschreibung

Verbindungsfehler der API Gateway WebSocket API können aus den folgenden Gründen auftreten:

  • Unzureichende Berechtigungen, um die Anfrage an das Backend zu stellen
  • Falsche Felder für die API-ID, die AWS-Region und die API-Stufe
  • Fehler in der Backend-Integration
  • Authentifizierungsfehler bei AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement)

Lösung

Stelle sicher, dass die WebSocket-API über die erforderlichen Berechtigungen verfügt, um eine Anfrage an das Backend zu stellen

API-Gateway verwendet IAM-Rollen, Richtlinien, Tags und AWS Lambda Authorizer, um den Zugriff auf eine WebSocket-API zu kontrollieren. Um eine Anfrage an das Backend zu stellen, muss API-Gateway über die richtigen Berechtigungen für diese Ressourcen verfügen. Weitere Informationen findest du unter Steuern und Verwalten des Zugriffs auf WebSocket-API in API Gateway.

Stelle außerdem sicher, dass du die WebSocket-API-Integrationsanfrage korrekt konfigurierst.

Bestätige, dass du die Anfrage an die richtige API-ID, Region und API-Stufe sendest

Stelle bei der Anfrage sicher, dass du die Anfrageinformationen überprüfst. Stelle in der folgenden Beispiel-Anfrage-URL sicher, dass die folgenden Felder korrekt sind:

wss://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/production
  • Die WebSocket-API-ID lautet a1b2c3d4e5.
  • Die Region für die Anfrage ist us-east-1.
  • Der Name der API-Stufe Produktion ist vorhanden.

Überprüfe die CloudWatch-Protokolle auf Fehler

Weitere Informationen zur Fehlerbehebung erhältst du, wenn du Amazon CloudWatch Logs zur Fehlerbehebung bei API Gateway WebSocket-APIs aktivierst. Wenn du eine Lambda-Funktion für das Backend integrierst, überprüfe die CloudWatch Logs auf Fehler. Weitere Informationen findest du unter Senden von Lambda-Funktionsprotokollen an CloudWatch Logs.

Bestätige, dass die API-Anfrage signiert ist

Wenn du die IAM-Authentifizierung für die API-Methode aktivierst, stelle sicher, dass die API-Anfrage mit Signature Version 4 (Sigv4) signiert ist. Weitere Informationen findest du unter Erstellen einer signierten AWS-API-Anfrage.

Gehe wie folgt vor, um die IAM-Authentifizierung für die API Gateway-API zu aktivieren:

  1. Wähle in der API-Gateway-Konsole die WebSocket-API aus.
  2. Wähle unter Routen die Option $connect aus.
    Hinweis: Du kannst Autorisierungseinstellungen nur für die $connect-Route angeben. Die Autorisierungseinstellung wird auf die gesamte API angewendet, nicht nur auf die Route $connect. Die Route $connect schützt die anderen Routen. Da die Route $connect für jede Verbindung aufgerufen wird, schützt die Route $connect alle anderen Routen.
  3. Wähle unter Routenanfrage unter Routenanfrageeinstellungen die Option Bearbeiten aus.
  4. Wählen für Autorisierung in der Dropdownliste AWS IAM aus und wähle dann Änderungen speichern aus.
  5. Stelle die WebSocket-API bereit, damit die Änderungen wirksam werden.

Ähnliche Informationen

Ausführung der WebSocket-API mit CloudWatch-Metriken überwachen

Zugriff auf WebSocket-APIs mit AWS Lambda REQUEST-Genehmigern steuern.