Configurar o mapeamento de dados para APIs de WebSocket no API Gateway
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.
A tabela a seguir mostra as expressões de mapeamento de dados da solicitação de integração. Na tabela,
é o nome de um parâmetro de solicitação de rota do tipo de parâmetro especificado. Deve corresponder à expressão regular PARAM_NAME
'^[a-zA-Z0-9._$-]+$]'
. JSONPath_Expression
é uma expressão JSONPath para um campo JSON do corpo da solicitaçã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. |
Cabeçalho de solicitação (compatível apenas com a rota $connect ) |
route.request.header. |
String de consulta de solicitação de vários valores (compatível apenas com a rota $connect ) |
route.request.multivaluequerystring. |
Cabeçalho de solicitação de vários valores (compatível apenas com a rota $connect ) |
route.request.multivalueheader. |
Corpo da solicitação | route.request.body. |
Variáveis de estágio | stageVariables. |
Variáveis de contexto | context. que deve ser uma das variáveis de contexto com suporte. |
Valor estático | . 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'