Configuración de asignación de datos para las API de WebSocket - Amazon API Gateway

Configuración de asignación de datos para las API de WebSocket

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 tabla siguiente, PARAM_NAME es el nombre de un parámetro de solicitud de ruta del tipo de parámetro especificado. Debe coincidir con la expresión regular '^[a-zA-Z0-9._$-]+$]'. JSONPath_expression es una expresión JSONPath para un campo JSON del cuerpo de la solicitud.

Expresiones de asignación de datos de solicitud de integración
Origen de datos asignado Expresión de asignación
Cadena de consulta de solicitud (compatible solo con la ruta $connect) route.request.querystring.PARAM_NAME
Encabezado de solicitud (compatible solo con la ruta $connect) route.request.header.PARAM_NAME
Cadena de consulta de solicitud de varios valores (compatible solo con la ruta $connect) route.request.multivaluequerystring.PARAM_NAME
Encabezado de solicitud de varios valores (solo compatible con la ruta $connect) route.request.multivalueheader.PARAM_NAME
Cuerpo de la solicitud route.request.body.JSONPath_EXPRESSION
Variables de etapa stageVariables.VARIABLE_NAME
Variables de contexto context.VARIABLE_NAME que debe ser alguna de las variables de contexto admitidas.
Valor estático 'STATIC_VALUE'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 ejemplo de comando asigna el connectionId de un cliente al encabezado connectionId en la solicitud a una integración del 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

Los siguientes ejemplos de comandos asignan un parámetro de cadena de consulta authToken a un encabezado authToken en la solicitud de integración.

Primero, agregue el parámetro de cadena de consulta authToken en los parámetros de solicitud de la ruta.

aws apigatewayv2 update-route --route-id 0abcdef \ --api-id a1b2c3d4 \ --request-parameters '{"route.request.querystring.authToken": {"Required": false}}'

A continuación, asigne el parámetro de cadena de consulta al encabezado authToken en la solicitud a la integración del backend.

aws apigatewayv2 update-integration \ --integration-id abc123 \ --api-id a1b2c3d4 \ --request-parameters 'integration.request.header.authToken'='route.request.querystring.authToken'

Si es necesario, elimine el parámetro de cadena de consulta authToken de los parámetros de solicitud de la ruta.

aws apigatewayv2 delete-route-request-parameter \ --route-id 0abcdef \ --api-id a1b2c3d4 \ --request-parameter-key 'route.request.querystring.authToken'