Expressions de sélection de WebSocket dans API Gateway - Amazon API Gateway

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Expressions de sélection de WebSocket dans API Gateway

API Gateway utilise des expressions de sélection pour évaluer le contexte de demande et de réponse, et générer une clé. La clé est ensuite utilisée pour effectuer une sélection parmi un ensemble de valeurs possibles, généralement fournies par vous, en tant que développeur de l'API. L'ensemble exact des variables prises en charge varie en fonction de l'expression en question. Les différentes expressions sont présentées plus en détail ci-après.

Pour toutes les expressions, le langage suit le même ensemble de règles :

  • Une variable est précédée du préfixe "$".

  • Des accolades peuvent être utilisées pour définir explicitement les limites des variables (par exemple., "${request.body.version}-beta".

  • Plusieurs variables sont prises en charge, mais l'évaluation n'intervient qu'une seule fois (pas d'évaluation récursive).

  • L'échappement du symbole du dollar ($) est effectué avec "\". C'est particulièrement utile lorsque vous définissez une expression qui est mappée à la clé $default réservée (par exemple, "\$default").

  • Dans certains cas, un format de modèle est requis. Dans ce cas, l'expression doit être encapsulée avec des barres obliques ("/") (par exemple, "/2\d\d/") pour correspondre aux codes de statut 2XX.

Expressions de sélection de la réponse de routage

Une réponse de routage est utilisée pour modéliser une réponse du serveur principal au client. Pour les API WebSocket, la réponse de routage est facultative. Une fois définie, elle indique à API Gateway qu'il doit renvoyer une réponse à un client en cas de réception d'un message WebSocket.

L'évaluation de l'expression de sélection de la réponse de routage génère une clé de réponse de routage. Au final, cette clé est utilisée pour choisir l'un des éléments RouteResponses associés à l'API. Cependant, à l'heure actuelle, seule la clé $default est prise en charge.

Expressions de sélection de la clé d'API

Cette expression est évaluée lorsque le service détermine que la demande en question doit continuer uniquement si le client fournit une clé d'API.

À l'heure actuelle, les seules deux valeurs prises en charge sont $request.header.x-api-key et $context.authorizer.usageIdentifierKey.

Expressions de sélection du mappage d'API

Cette expression est évaluée pour déterminer quelle étape d'API est sélectionné lorsqu'une demande est effectuée à l'aide d'un domaine personnalisé.

À l'heure actuelle, la seule valeur prise en charge est $request.basepath.

Résumé des expressions de sélection de WebSocket

Le tableau suivant résume les cas d'utilisation des expressions de sélection dans les API WebSocket :

Expression de sélection Correspond à la clé pour Remarques Exemple de cas d'utilisation
Api.RouteSelectionExpression Route.RouteKey $default est pris en charge en tant que route fourre-tout. Acheminer des messages WebSocket sur la base du contexte de la demande d'un client.
Route.ModelSelectionExpression Clé pour Route.RequestModels

Facultatif.

Si elle est fournie pour une intégration autre que de proxy, la validation du modèle a lieu.

$default est pris en charge en tant que fourre-tout.

Effectuer une validation de demande de manière dynamique au sein de la même route.
Integration.TemplateSelectionExpression Clé pour Integration.RequestTemplates

Facultatif.

Peut être fournie pour une intégration autre que de proxy pour manipuler des charges utiles entrantes.

${request.body.jsonPath} et les valeurs statiques sont pris en charge.

$default est pris en charge en tant que fourre-tout.

Manipuler la demande de l'appelant en fonction des propriétés dynamiques de la demande.
Integration.IntegrationResponseSelectionExpression IntegrationResponse.IntegrationResponseKey

Facultatif. Peut être fournie pour une intégration autre que de proxy.

Agit en tant que modèle de correspondance pour des messages d'erreur (à partir de Lambda) ou des codes d'état (à partir d'intégrations HTTP).

$default est obligatoire pour des intégrations autres que de proxy pour agir en tant que fourre-tout pour les réponses fructueuses.

Manipuler la réponse du serveur principal.

Choisir l'action à exécuter en fonction de la réponse dynamique du serveur principal (par exemple, traitement distinctif de certaines erreurs).

IntegrationResponse.TemplateSelectionExpression Clé pour IntegrationResponse.ResponseTemplates Facultatif. Peut être fournie pour une intégration autre que de proxy.

$default est pris en charge.

Dans certains cas, une propriété dynamique de la réponse peut imposer différentes transformations au sein de la même route et de l'intégration associée.

${request.body.jsonPath}, ${integration.response.statuscode}, ${integration.response.header.headerName}, ${integration.response.multivalueheader.headerName}, et les valeurs statiques sont pris en charge.

$default est pris en charge en tant que fourre-tout.

Route.RouteResponseSelectionExpression RouteResponse.RouteResponseKey

Doit être fournie pour initier une communication bidirectionnelle pour une route WebSocket.

À l'heure actuelle, cette valeur est limitée à $default uniquement.

RouteResponse.ModelSelectionExpression Clé pour RouteResponse.RequestModels Non prise en charge actuellement.