Configuration du mappage de données pour les API WebSocket dans API Gateway
Le mappage de données vous permet de mapper des données d’une demande de routage vers une intégration backend.
Note
Le mappage de données pour les API WebSocket n’est pas pris en charge dans l’AWS Management Console. Vous devez utiliser l’AWS CLI, AWS CloudFormation ou un kit SDK pour configurer le mappage de données.
Rubriques
Mappage des données de demande de routage à des paramètres de demande d’intégration
Les paramètres de demande d’intégration peuvent être mappés à partir de n’importe quels paramètres de demande de routage défini, du corps de la demande, des variables context ou stage, ainsi que des valeurs statiques.
Le tableau suivant présente les expressions de mappage des données des demandes d’intégration. Dans le tableau,
est le nom d’un paramètre de demande de routage du type de paramètre donné. Il doit respecter le modèle d’expression régulière PARAM_NAME
'^[a-zA-Z0-9._$-]+$]'
. JSONPath_EXPRESSION
est une expression JSONPath pour un champ JSON du corps de la demande.
Source de données mappée | Expression de mappage |
---|---|
Chaîne de requête de demande (prise en charge uniquement pour le routage $connect ) |
route.request.querystring. |
En-tête de demande (prise en charge uniquement pour le routage $connect ) |
route.request.header. |
Chaîne de demande à plusieurs valeurs (prise en charge uniquement pour le routage $connect ) |
route.request.multivaluequerystring. |
En-tête de demande à plusieurs valeurs (prise en charge uniquement pour le routage $connect ) |
route.request.multivalueheader. |
Corps de la demande | route.request.body. |
Variables d’étape | stageVariables. |
Variables de contexte | context. qui doit être l’une des variables de contexte prises en charge. |
Valeur statique | . STATIC_VALUE est une chaîne littérale qui doit être placée entre guillemets simples. |
Exemples
Les exemples AWS CLI suivants configurent les mappages de données. Pour obtenir un exemple de modèle AWS CloudFormation, consultez websocket-data-mapping.yaml
.
Mapper ConnectionID d’un client à un en-tête dans une demande d’intégration
L’exemple de commande suivant mappe connectionId
d’un client à un en-tête connectionId
dans la demande à une intégration backend.
aws apigatewayv2 update-integration \ --integration-id abc123 \ --api-id a1b2c3d4 \ --request-parameters 'integration.request.header.connectionId'='context.connectionId'
Mapper un paramètre de chaîne de demande à un en-tête dans une demande d’intégration
Les exemples de commande suivants mappent un paramètre de chaîne de demande authToken
à un en-tête authToken
dans la demande d’intégration.
Tout d’abord, ajoutez le paramètre de chaîne de demande authToken
aux paramètres de demande du routage.
aws apigatewayv2 update-route --route-id 0abcdef \ --api-id a1b2c3d4 \ --request-parameters '{"route.request.querystring.authToken": {"Required": false}}'
Ensuite, mappez le paramètre de chaîne de demande à l’en-tête authToken
dans la demande à l’intégration backend.
aws apigatewayv2 update-integration \ --integration-id abc123 \ --api-id a1b2c3d4 \ --request-parameters 'integration.request.header.authToken'='route.request.querystring.authToken'
Si nécessaire, supprimez le paramètre de chaîne de requête authToken
dans les paramètres de demande de la route.
aws apigatewayv2 delete-route-request-parameter \ --route-id 0abcdef \ --api-id a1b2c3d4 \ --request-parameter-key 'route.request.querystring.authToken'