La asignación de datos le permite asignar datos de una solicitud de ruta a una integración del backend.
nota
El mapeo de datos para las API de WebSocket no se admite en AWS Management Console. Debe utilizar la AWS CLI, AWS CloudFormation o un SDK para configurar la asignación de datos.
Asignar datos de solicitud de ruta a parámetros de solicitud de integración
Los parámetros de solicitud de integración se pueden asignar desde cualquier parámetro de solicitud de ruta definido, el cuerpo de la solicitud, variables context o stage y valores estáticos.
En la siguiente tabla se muestran las expresiones de asignación de datos de las solicitudes de integración. En la tabla,
es el nombre de un parámetro de solicitud de ruta del tipo de parámetro especificado. Debe coincidir con la expresión regular PARAM_NAME
'^[a-zA-Z0-9._$-]+$]'
. JSONPath_expression
es una expresión JSONPath para un campo JSON del cuerpo de la solicitud.
Origen de datos asignado | Expresión de asignación |
---|---|
Cadena de consulta de solicitud (compatible solo con la ruta $connect ) |
route.request.querystring. |
Encabezado de solicitud (compatible solo con la ruta $connect ) |
route.request.header. |
Cadena de consulta de solicitud de varios valores (compatible solo con la ruta $connect ) |
route.request.multivaluequerystring. |
Encabezado de solicitud de varios valores (solo compatible con la ruta $connect ) |
route.request.multivalueheader. |
Cuerpo de la solicitud | route.request.body. |
Variables de etapa | stageVariables. |
Variables de contexto | context. que debe ser alguna de las variables de contexto admitidas. |
Valor estático | . STATIC_VALUE es un literal de cadena que se debe incluir entre comillas simples. |
Ejemplos
En los siguientes ejemplos de la AWS CLI se configuran asignaciones de datos. Para obtener una plantilla de AWS CloudFormation, consulte websocket-data-mapping.yaml
.
Asignar el connectionId de un cliente a un encabezado en una solicitud de integración
El siguiente comando update-integration permite asignar el connectionId
de un cliente a un encabezado connectionId
en la solicitud a una integración de backend:
aws apigatewayv2 update-integration \ --integration-id abc123 \ --api-id a1b2c3d4 \ --request-parameters 'integration.request.header.connectionId'='context.connectionId'
Asignar un parámetro de cadena de consulta a un encabezado en una solicitud de integración
En el siguiente ejemplo, se asigna un parámetro de cadena de consulta authToken
a un encabezado authToken
en la solicitud de integración.
-
Utilice el siguiente comando update-route para agregar el parámetro de cadena de consulta
authToken
a los parámetros de solicitud de ruta.aws apigatewayv2 update-route --route-id 0abcdef \ --api-id a1b2c3d4 \ --request-parameters '{"route.request.querystring.authToken": {"Required": false}}'
-
Utilice el siguiente comando update-integration para asignar el parámetro de cadena de consulta al encabezado
authToken
en la solicitud a la integración de backend.aws apigatewayv2 update-integration \ --integration-id abc123 \ --api-id a1b2c3d4 \ --request-parameters 'integration.request.header.authToken'='route.request.querystring.authToken'
-
(Opcional) Si es necesario, utilice el siguiente comando delete-route-request-parameter para eliminar el parámetro de cadena de consulta
authToken
de los parámetros de solicitud de ruta.aws apigatewayv2 delete-route-request-parameter \ --route-id 0abcdef \ --api-id a1b2c3d4 \ --request-parameter-key 'route.request.querystring.authToken'