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

Anforderungsvalidierung für WebSocket-APIs in API Gateway

Fokusmodus
Anforderungsvalidierung für WebSocket-APIs in API Gateway - 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.

Sie können API Gateway so konfigurieren, dass die Validierung einer Routenanforderung durchgeführt wird, bevor Sie mit der Integrationsanforderung fortfahren. Bei einer fehlgeschlagenen Validierung erkennt API Gateway die Anforderung sofort als fehlerhaft, ohne das Backend aufzurufen, sendet eine "Bad request body"-Gateway-Antwort an den Client und veröffentlicht die Validierungsergebnisse in CloudWatch Logs. Die Verwendung der Validierung auf diese Weise reduziert unnötige Aufrufe an Ihr API-Backend.

Modell-Auswahlausdrücke

Sie können einen Modell-Auswahlausdruck verwenden, um Anforderungen innerhalb derselben Route dynamisch zu validieren. Die Modellvalidierung erfolgt, wenn Sie einen Modell-Auswahlausdruck für Proxy- oder Nicht-Proxy-Integrationen bereitstellen. Möglicherweise müssen Sie das $default-Modell als Fallback definieren, wenn kein passendes Modell gefunden wird. Wenn kein übereinstimmendes Modell vorhanden ist und $default nicht definiert ist, schlägt die Validierung fehl. Der Auswahlausdruck ähnelt Route.ModelSelectionExpression und wertet den Schlüssel für Route.RequestModels aus.

Wenn Sie für eine WebSocket-API eine Route vorgeben, können Sie optional einen Modell-Auswahlausdruck angeben. Dieser Ausdruck wird zur Auswahl des Modells ausgewertet, das bei Eingang einer Anforderung für die Textvalidierung verwendet werden soll. Der Ausdruck wird auf einen der Einträge in den einer Route ausgewertet requestmodels.

Ein Modell wird als JSON-Schema ausgedrückt und beschreibt die Datenstruktur des Anforderungstextes. Die Beschaffenheit dieses Auswahlausdrucks ermöglicht Ihnen, dynamisch das Modell auszuwählen, über das zur Laufzeit für eine bestimmte Route validiert werden soll. Weitere Informationen, wie Sie ein Modell erstellen können, finden Sie unter Datenmodelle für REST APIs.

Einrichten der grundlegenden Anforderungsvalidierung über die API-Gateway-Konsole

Im folgenden Beispiel wird gezeigt, wie Sie die Anforderungsvalidierung auf einer Route einrichten.

Zuerst erstellen Sie ein Modell und dann eine Route. Als Nächstes konfigurieren Sie die Anforderungsvalidierung für die Route, die Sie gerade erstellt haben. Abschließend stellen Sie Ihre API bereit und testen sie. Für dieses Tutorial benötigen Sie eine WebSocket-API mit $request.body.action als Routenauswahlausdruck und einen Integrationsendpunkt für Ihre neue Route.

Sie benötigen außerdem wscat, um eine Verbindung zu Ihrer API herzustellen. Weitere Informationen finden Sie unter Wird verwendetwscat, um eine Verbindung zu einer WebSocket API herzustellen und Nachrichten an diese zu senden.

So erstellen Sie ein Modell
  1. Melden Sie sich bei der API Gateway-Konsole unter https://console.aws.amazon.com/apigateway an.

  2. Wählen Sie eine WebSocket-API.

  3. Klicken Sie im Navigationsbereich auf Models (Modelle).

  4. Wählen Sie Modell erstellen aus.

  5. Geben Sie unter Name emailModel ein.

  6. Geben Sie für Content type (Inhaltstyp) application/json ein.

  7. Geben Sie für Modellschema Folgendes ein:

    { "$schema": "http://json-schema.org/draft-04/schema#", "type" : "object", "required" : [ "address"], "properties" : { "address": { "type": "string" } } }

    Für dieses Modell muss die Anfrage eine E-Mail-Adresse enthalten.

  8. Wählen Sie Save (Speichern) aus.

In diesem Schritt erstellen Sie eine Route für Ihre WebSocket-API.

Erstellen Sie eine Route.
  1. Klicken Sie im Hauptnavigationsbereich auf Routen.

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

  3. Geben Sie in Route key (Routenschlüssel) sendMessage ein.

  4. Wählen Sie einen Integrationstyp und geben Sie einen Integrationsendpunkt an. Weitere Informationen finden Sie unter Integrationen für das WebSocket APIs API Gateway.

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

In diesem Schritt richten Sie die Anforderungsvalidierung für die sendMessage-Route ein.

Einrichten der Anforderungsvalidierung
  1. Klicken Sie auf der Registerkarte Routenanforderung unter Routenanforderungseinstellungen auf Bearbeiten.

  2. Geben Sie unter Modellauswahlausdruck ${request.body.messageType} ein.

    API Gateway verwendet die messageType-Eigenschaft zur Validierung der eingehenden Anforderung.

  3. Klicken Sie auf Anforderungsmodell hinzufügen.

  4. Geben Sie für Modellschlüssel email ein.

  5. Wählen Sie unter Modell die Option emailModel aus.

    API Gateway validiert eingehende Nachrichten mithilfe der messageType-Eigenschaft, die anhand dieses Modells auf email gesetzt ist.

    Anmerkung

    Wenn API Gateway den Modellauswahlausdruck nicht mit einem Modellschlüssel abgleichen kann, wird das $default-Modell ausgewählt. Wenn kein $default-Modell vorhanden ist, schlägt die Validierung fehl. Für Produktions-APIs empfehlen wir, ein $default-Modell zu erstellen.

  6. Wählen Sie Änderungen speichern.

In diesem Schritt stellen Sie Ihre API bereit und testen sie.

Bereitstellen und testen Ihrer API
  1. Klicken Sie auf Deploy API.

  2. Wählen Sie die gewünschte Stufe aus der Dropdown-Liste aus oder geben Sie den Namen einer neuen Stufe ein.

  3. Wählen Sie Bereitstellen.

  4. Klicken Sie im Hauptnavigationsbereich auf Stages (Stufen).

  5. Kopieren Sie die WebSocket-URL Ihrer API. Die URL sollte wie wss://abcdef123.execute-api.us-east-2.amazonaws.com/production aussehen.

  6. Öffnen Sie ein neues Terminal. Führen Sie den Befehl wscat mit den folgenden Parametern aus.

    wscat -c wss://abcdef123.execute-api.us-west-2.amazonaws.com/production
    Connected (press CTRL+C to quit)
  7. Testen Sie Ihre API mit dem folgenden Befehl.

    {"action": "sendMessage", "messageType": "email"}
    {"message": "Invalid request body", "connectionId":"ABCD1=234", "requestId":"EFGH="}

    Die Anforderung schlägt in API Gateway fehl.

    Verwenden Sie den folgenden Befehl, um eine gültige Anforderung an Ihre API zu senden.

    {"action": "sendMessage", "messageType": "email", "address": "mary_major@example.com"}
DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.