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.
WebSocket expressions de sélection
APIGateway utilise des expressions de sélection pour évaluer le contexte de la demande et de la réponse et pour produire une clé. La clé est ensuite utilisée pour sélectionner une valeur parmi un ensemble de valeurs possibles, généralement fournies par vous, le API développeur. 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 statut2
.XX
Rubriques
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. En effet WebSocket APIs, une réponse d'itinéraire est facultative. Une fois défini, il indique à API Gateway qu'il doit renvoyer une réponse à un client à la réception d'un WebSocket message.
L'évaluation de l'expression de sélection de la réponse de routage génère une clé de réponse de routage. Finalement, cette clé sera utilisée pour choisir l'une des clés RouteResponses
associées auAPI. Cependant, à l'heure actuelle, seule la clé $default
est prise en charge.
APIexpressions de sélection clés
Cette expression est évaluée lorsque le service détermine que la demande donnée ne doit être traitée que si le client fournit une APIclé valide.
À l'heure actuelle, les seules deux valeurs prises en charge sont $request.header.x-api-key
et $context.authorizer.usageIdentifierKey
.
APImappage des expressions de sélection
Cette expression est évaluée pour déterminer quelle API étape est sélectionnée lorsqu'une demande est faite à l'aide d'un domaine personnalisé.
À l'heure actuelle, la seule valeur prise en charge est $request.basepath
.
WebSocketrésumé de l'expression de sélection
Le tableau suivant récapitule les cas d'utilisation des expressions de sélection dans WebSocket APIs :
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. |
WebSocket Acheminez les messages en fonction du contexte d'une demande du 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.
|
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.
|
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 comme une correspondance de modèles pour les messages d'erreur (provenant de Lambda) ou les codes d'état (issus d'HTTPintégrations).
|
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.
|
Route.RouteResponseSelectionExpression |
RouteResponse.RouteResponseKey |
Doit être fourni pour initier une communication bidirectionnelle pour un WebSocket itinéraire. À l'heure actuelle, cette valeur est limitée à |
|
RouteResponse.ModelSelectionExpression |
Clé pour RouteResponse.RequestModels |
Non prise en charge actuellement. |