Configurar o mapeamento de dados para APIs de WebSocket - Amazon API Gateway

Configurar o mapeamento de dados para APIs de WebSocket

Omapeamento de dados permite mapear dados de uma solicitação de rota para uma integração de backend.

nota

O mapeamento de dados para APIs do WebSocket não é suportado no AWS Management Console. É necessário usar a AWS CLI, o AWS CloudFormation, ou um SDK para configurar o mapeamento de dados.

Mapear dados de solicitação de rota para parâmetros de solicitação de integração

Os parâmetros de solicitação de integração podem ser mapeados a partir de quaisquer parâmetros de solicitação de rota definidos, o corpo da solicitação, as variáveis context ou stage e valores estáticos.

Na tabela a seguir, PARAM_NAME é o nome de um parâmetro de solicitação de rota do tipo de parâmetro especificado. Deve corresponder à expressão regular '^[a-zA-Z0-9._$-]+$]'. JSONPath_Expression é uma expressão JSONPath para um campo JSON do corpo da solicitação.

Expressões de mapeamento de dados de solicitações de integração
Fonte de dados mapeada Expressão de mapeamento
String de consulta de solicitação (compatível apenas com a rota $connect) route.request.querystring.PARAM_NAME
Cabeçalho de solicitação (compatível apenas com a rota $connect) route.request.header.PARAM_NAME
String de consulta de solicitação de vários valores (compatível apenas com a rota $connect) route.request.multivaluequerystring.PARAM_NAME
Cabeçalho de solicitação de vários valores (compatível apenas com a rota $connect) route.request.multivalueheader.PARAM_NAME
Corpo da solicitação route.request.body.JSONPath_EXPRESSION
Variáveis de estágio stageVariables.VARIABLE_NAME
Variáveis de contexto context.VARIABLE_NAME que deve ser uma das variáveis de contexto com suporte.
Valor estático 'STATIC_VALUE'. STATIC_VALUE é um literal de string e deve estar entre aspas simples.

Exemplos

Os exemplos da AWS CLI a seguir configuram mapeamentos de dados. Para obter um modelo demonstrativo do AWS CloudFormation, consulte websocket-data-mapping.yaml.

Mapear o connectionId de um cliente para um cabeçalho em uma solicitação de integração

O comando demonstrativo a seguir mapeia o connectionId de um cliente para um cabeçalho connectionId na solicitação para uma integração de backend.

aws apigatewayv2 update-integration \ --integration-id abc123 \ --api-id a1b2c3d4 \ --request-parameters 'integration.request.header.connectionId'='context.connectionId'

Mapear um parâmetro de string de consulta para um cabeçalho em uma solicitação de integração

Os comandos demonstrativos a seguir mapeiam um parâmetro de string de consulta authToken para um cabeçalho authToken na solicitação de integração.

Primeiro, adicione o parâmetro de string de consulta authToken aos parâmetros de solicitação da rota.

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

Depois, mapeie o parâmetro de string de consulta para o cabeçalho authToken na solicitação para a integração de backend.

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

Se necessário, exclua o parâmetro da string de consulta authToken dos parâmetros de solicitação da rota.

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