Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Routen für WebSocket APIs im API Gateway erstellen

Fokusmodus
Routen für WebSocket APIs im API Gateway erstellen - Amazon API 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.

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.

In Ihrer WebSocket API werden eingehende JSON-Nachrichten auf der Grundlage von Routen, die Sie konfigurieren, an Backend-Integrationen weitergeleitet. (Nicht-JSON-Nachrichten werden an eine von Ihnen konfigurierte $default-Route weitergeleitet.)

Eine Route umfasst einen Routenschlüssel. Dabei handelt es sich um den Wert, der bei der Auswertung eines Routen-Auswahlausdrucks erwartet wird. Das routeSelectionExpression ist ein auf API-Ebene definiertes Attribut. Es gibt eine JSON-Eigenschaft an, von der erwartet wird, dass sie in der Nachricht-Nutzlast vorhanden ist. Weitere Informationen zu Routen-Auswahlausdrücken finden Sie unter Routen-Auswahlausdrücke.

Beispiel: Wenn Ihre JSON-Nachrichten eine action-Eigenschaft enthalten und Sie basierend auf dieser Eigenschaft verschiedene Aktionen durchführen möchten, könnte Ihr Routen-Auswahlausdruck ${request.body.action} lauten. Ihre Routing-Tabelle würde in diesem Fall angeben, welche Aktion ausgeführt werden soll, indem der Wert der action-Eigenschaft gegen die benutzerdefinierten Routenschlüssel-Werte abgeglichen wird, die Sie in der Tabelle definiert haben.

Es gibt drei vordefinierte Routen, die verwendet werden können: $connect, $disconnect und $default. Darüber hinaus können Sie benutzerdefinierte Routen erstellen.

  • API Gateway ruft die $connect Route auf, wenn eine persistente Verbindung zwischen dem Client und einer WebSocket API initiiert wird.

  • API Gateway ruft die $disconnect-Route auf, wenn der Client oder der Server die Verbindung mit der API unterbricht.

  • API Gateway ruft eine benutzerdefinierte Route auf, wenn nach der Auswertung des Routen-Auswahlausdrucks im Hinblick auf die Nachricht eine übereinstimmende Route gefunden wird. Die Übereinstimmung bestimmt, welche Integration aufgerufen wird.

  • API Gateway ruft die Route $default auf, wenn der Routen-Auswahlausdruck nicht im Hinblick auf die Nachricht ausgewertet werden kann oder wenn keine übereinstimmende Route gefunden wird.

Routen-Auswahlausdrücke

Ein Routen-Auswahlausdruck wird ausgewertet, wenn der Service die Route auswählt, der eine eingehende Nachricht folgen soll. Der Service verwendet die Route, deren routeKey genau dem ausgewerteten Wert entspricht. Wenn bei fehlender Übereinstimmung eine Route mit dem Routenschlüssel $default vorhanden ist, wird diese Route ausgewählt. Wenn keine Routen dem ausgewählten Wert entsprechen und keine $default-Route vorhanden ist, gibt der Service einen Fehler zurück. Für WebSocket -based APIs sollte der Ausdruck die folgende Form haben$request.body.{path_to_body_element}.

Angenommen, Sie senden die folgende JSON-Nachricht:

{ "service" : "chat", "action" : "join", "data" : { "room" : "room1234" } }

Möglicherweise möchten Sie das Verhalten Ihrer API basierend auf der Eigenschaft action auswählen. In diesem Fall könnten Sie den folgenden Routen-Auswahlausdruck definieren:

$request.body.action

request.bodyBezieht sich in diesem Beispiel auf die JSON-Nutzlast Ihrer Nachricht und .action ist ein JSONPathAusdruck. Sie können nach request.body einen beliebigen JSON-Pfad-Ausdruck verwenden. Denken Sie aber daran, dass das Ergebnis in Text umgewandelt wird. Wenn Ihr JSONPath Ausdruck beispielsweise ein Array mit zwei Elementen zurückgibt, wird dieses als Zeichenfolge "[item1, item2]" dargestellt. Aus diesem Grund ist es sinnvoll, dass Ihr Ausdruck auf einen Wert und nicht auf ein Array oder Objekt ausgewertet wird.

Sie können einfach einen statischen Wert oder auch mehrere Variablen verwenden. In der folgenden Tabelle werden Beispiele und deren im Hinblick auf die vorhergehende Nutzlast ausgewerteten Ergebnisse gezeigt.

Ausdruck Ausgewertetes Ergebnis Beschreibung
$request.body.action join Eine entpackte Variable
${request.body.action} join Eine verpackte Variable
${request.body.service}/${request.body.action} chat/join Mehrere Variablen mit statischen Werten
${request.body.action}-${request.body.invalidPath} join- Wenn der nicht gefunden JSONPath wird, wird die Variable als „“ aufgelöst.
action action Statischer Wert
\$default $default Statischer Wert

Das ausgewertete Ergebnis wird zum Auffinden der Route verwendet. Wenn eine Route mit einem übereinstimmenden Routenschlüssel vorhanden ist, wird die Route zur Verarbeitung der Nachricht ausgewählt. Wenn keine passende Route gefunden wird, versucht API Gateway, die $default-Route zu finden, falls verfügbar. Wenn die $default-Route nicht definiert ist, gibt API Gateway einen Fehler zurück.

Routen für eine WebSocket API in API Gateway einrichten

Wenn Sie zum ersten Mal eine neue WebSocket API erstellen, gibt es drei vordefinierte Routen: $connect$disconnect, und$default. Sie können sie mithilfe der Konsole, der API oder erstellen AWS CLI. Auf Wunsch können Sie benutzerdefinierte Routen erstellen. Weitere Informationen finden Sie unter WebSocket-APIs in API Gateway im Überblick.

Anmerkung

In der CLI ist es möglich, Routen vor oder nach dem Erstellen von Integrationen zu erstellen. Auch können Sie dieselbe Integration für mehrere Routen wiederverwenden.

Route mit der API Gateway-Konsole erstellen

So erstellen Sie eine Route über die API Gateway-Konsole:
  1. Melden Sie sich bei der API Gateway-Konsole an, wählen Sie die API und wählen Sie Routes (Routen).

  2. Wählen Sie Create route (Route erstellen) aus.

  3. Geben Sie bei Route key (Routenschlüssel) den Schlüsselnamen ein. Sie können die vordefinierten Routen ($connect, $disconnect und $default) oder eine benutzerdefinierte Route erstellen.

    Anmerkung

    Wenn Sie eine benutzerdefinierte Route erstellen, verwenden Sie nicht das $-Präfix im Routenschlüsselnamen. Dieses Präfix ist für vordefinierte Routen reserviert.

  4. Wählen und konfigurieren Sie den Integrationstyp für die Route. Weitere Informationen finden Sie unter Richten Sie mit der WebSocket API Gateway-Konsole eine API-Integrationsanfrage ein.

Erstellen Sie eine Route mit dem AWS CLI

Der folgende Befehl create-route erstellt eine Route:

aws apigatewayv2 --region us-east-1 create-route --api-id aabbccddee --route-key $default

Die Ausgabe wird wie folgt aussehen:

{ "ApiKeyRequired": false, "AuthorizationType": "NONE", "RouteKey": "$default", "RouteId": "1122334" }

Angeben der Routenanforderungs-Einstellungen für $connect

Wenn Sie die $connect-Route für Ihre API einrichten, sind die folgenden optionalen Einstellungen verfügbar, um die Autorisierung für Ihre API zu ermöglichen. Weitere Informationen finden Sie unter Die Route $connect.

  • Authorization (Autorisierung): Wenn keine Autorisierung erforderlich ist, können Sie NONE angeben. Geben Sie andernfalls Folgendes ein:

    • AWS_IAMum den Zugriff auf Ihre API mithilfe von AWS Standard-IAM-Richtlinien zu kontrollieren.

    • CUSTOM, um die Autorisierung für eine API durch Angabe einer zuvor von Ihnen erstellten Lambda-Genehmigerfunktion zu implementieren. Der Autorisierer kann sich in Ihrem eigenen AWS Konto oder einem anderen Konto befinden. AWS Weitere Informationen über Lambda-Genehmiger finden Sie unter API Gateway-Lambda-Genehmiger verwenden.

      Anmerkung

      In der API Gateway-Konsole ist die Einstellung CUSTOM erst sichtbar, nachdem Sie eine Genehmigerfunktion wie unter Lambda-Genehmiger konfigurieren (Konsole) beschrieben eingerichtet haben.

    Wichtig

    Die Einstellung von Authorization (Autorisierung) wird auf die gesamte API angewendet, nicht nur auf die $connect-Route. Die $connect-Route schützt die übrigen Routen, da sie für jede Verbindung aufgerufen wird.

  • API-Schlüssel erforderlich: Sie können für die $connect-Route einer API optional einen API-Schlüssel verlangen. Sie können API-Schlüssel zusammen mit Nutzungsplänen verwenden, um den Zugriff auf Ihre zu kontrollieren und zu verfolgen. APIs Weitere Informationen finden Sie unter Nutzungspläne und API-Schlüssel für REST APIs in API Gateway.

$connect-Routenanforderung über die API Gateway-Konsole einrichten

So richten Sie die $connect Routenanforderung für eine WebSocket API mithilfe der API Gateway Gateway-Konsole ein:

  1. Melden Sie sich bei der API Gateway-Konsole an, wählen Sie die API und wählen Sie Routes (Routen).

  2. Wählen Sie unter Routes (Routen) $connect aus oder erstellen Sie eine $connect-Route, indem Sie wie folgt vorgehen Route mit der API Gateway-Konsole erstellen.

  3. Wählen Sie im Abschnitt Route request settings (Einstellungen der Routenanforderung) die Option Edit (Bearbeiten) aus.

  4. Wählen Sie für Authorization (Autorisierung) einen Autorisierungstyp aus.

  5. Um eine API für die $connect-Route anzufordern, wählen Sie Require API key (API-Schlüssel erforderlich) aus.

  6. Wählen Sie Änderungen speichern.

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.