Datenzuordnung für WebSocket-APIs in API Gateway einrichten
Mit der Datenzuordnung können Sie Daten aus einer Routenanforderung einer Backend-Integration zuordnen.
Anmerkung
Die Datenzuordnung für WebSocket-APIs wird im AWS Management Console nicht unterstützt. Sie müssen die Datenzuordnung mit AWS CLI, AWS CloudFormation oder einem SDK konfigurieren.
Zuordnen von Routenanforderungsdaten zu Integrationsanforderungsparametern
Integrationsanforderungsparameter können aus beliebigen definierten Routenanforderungsparametern, dem Anforderungstext context oder stage-Variablen und statischen Werten zugeordnet werden.
In der folgenden Tabelle sehen Sie Datenzuordnungsausdrücke für Integrationsanfragen. In der Tabelle ist
der Name eines Routenanforderungsparameters des angegebenen Parametertyps. Er muss dem regulären Ausdruck PARAM_NAME
'^[a-zA-Z0-9._$-]+$]'
entsprechen. JSONPath_Expression
ist ein JSONPath-Ausdruck für ein JSON-Feld des Anforderungstests.
Zugewiesene Datenquelle | Mapping-Ausdruck |
---|---|
Anforderungsabfragezeichenfolge (wird nur für die $connect -Route unterstützt) |
route.request.querystring. |
Anforderungs-Header (wird nur für die $connect -Route unterstützt) |
route.request.header. |
Abfragezeichenfolge mit mehreren Werten (nur für die $connect -Route unterstützt) |
route.request.multivaluequerystring. |
Anforderungsheader mit mehreren Werten (nur für die $connect -Route unterstützt) |
route.request.multivalueheader. |
Anforderungstext | route.request.body. |
Stufenvariablen | stageVariables. |
Kontextvariablen | context. , wobei die Variable zu den unterstützten Kontextvariablen gehören muss. |
Statischer Wert | . STATIC_VALUE ist ein Zeichenfolgenliteral, das in einfache Anführungszeichen eingeschlossen werden muss. |
Beim Erstellen einer Datenzuweisung sollten Sie in der AWS CLI das korrekte Format für die Verwendung von Literalen mit Zeichenfolgen in der AWS CLI beachten. Weitere Informationen finden Sie unter Verwenden von Zeichenfolgen mit Anführungszeichen in der AWS CLI im Benutzerhandbuch zur AWS Command Line Interface.
Beispiele
In den folgenden AWS CLI-Beispielen werden Datenzuordnungen konfiguriert. Eine AWS CloudFormation-Beispielvorlage finden Sie unter websocket-data-mapping.yaml
.
Zuordnen der ConnectionID eines Clients zu einem Header in einer Integrationsanforderung
Der folgende update-integration-Befehl weist die connectionId
eines Clients dem connectionId
-Header in der Anfrage an eine Backend-Integration zu:
aws apigatewayv2 update-integration \ --integration-id abc123 \ --api-id a1b2c3d4 \ --request-parameters 'integration.request.header.connectionId'='context.connectionId'
Zuordnen eines Abfragezeichenfolgenparameters zu einem Header in einer Integrationsanforderung
Das folgende Beispiel weist einen authToken
-Abfragezeichenfolgenparameter dem authToken
-Header in der Integrationsanforderung zu.
-
Verwenden Sie den folgenden update-route-Befehl, um den
authToken
-Abfragezeichenfolgenparameter zu den Anforderungsparametern der Route hinzuzufügen.aws apigatewayv2 update-route --route-id 0abcdef \ --api-id a1b2c3d4 \ --request-parameters '{"route.request.querystring.authToken": {"Required": false}}'
-
Verwenden Sie den folgenden update-integration-Befehl, um den Abfragezeichenfolgenparameter dem
authToken
-Header in der Anfrage an die Backend-Integration zuzuweisen.aws apigatewayv2 update-integration \ --integration-id abc123 \ --api-id a1b2c3d4 \ --request-parameters 'integration.request.header.authToken'='route.request.querystring.authToken'
-
(Optional) Falls erforderlich, verwenden Sie den folgenden delete-route-request-parameter-Befehl, um den
authToken
-Abfragezeichenfolgenparameter aus den Anforderungsparametern der Route zu löschen.aws apigatewayv2 delete-route-request-parameter \ --route-id 0abcdef \ --api-id a1b2c3d4 \ --request-parameter-key 'route.request.querystring.authToken'