Configurar respostas de rotas para APIs de WebSocket no API Gateway
As rotas do WebSocket podem ser configuradas para comunicação bidirecional ou unidirecional. O API Gateway não transmitirá a resposta de back-end para a resposta de rota, a menos que você configure uma resposta de rota.
nota
Você só pode definir a resposta de rota $default
para as APIs do WebSocket. É possível usar uma resposta de integração para manipular a resposta de um serviço de back-end. Para ter mais informações, consulte Visão geral das respostas de integração.
É possível configurar respostas de rota e expressões de seleção de resposta usando o console do API Gateway ou a AWS CLI ou um SDK da AWS.
Para obter mais informações sobre expressões de seleção de respostas de rota, consulte Expressões de seleção de resposta de rotas.
Tópicos
Configurar uma resposta de rota usando o console do API Gateway
Depois de criar uma API de WebSocket e anexar uma função proxy do Lambda à rota padrão, você pode configurar a resposta da rota usando o console do API Gateway:
-
Faça login no console do API Gateway e selecione uma API do WebSocket com uma integração de função proxy do Lambda na rota
$default
. -
Em Routes (Rotas), selecione a rota
$default
. -
Selecione Habilitar comunicação bidirecional.
-
Escolha Implantar API.
-
Implante a API em um estágio.
Use o comando wscatwscat
, consulte Use wscat para se conectar a uma API do WebSocket e enviar mensagens a ela.
wscat -c wss://
api-id
.execute-api.us-east-2
.amazonaws.com/test
Pressione o botão enter para chamar a rota padrão. O corpo de sua função do Lambda deve retornar.
Configurar uma resposta de rota usando a AWS CLI
Para configurar uma resposta de rota para uma API WebSocket usando a AWS CLI, chame o comando create-route-response
, conforme mostrado no exemplo a seguir. É possível identificar o ID da API e o ID da rota chamando get-apis
e get-routes
.
aws apigatewayv2 create-route-response \ --api-id
aabbccddee
\ --route-id1122334
\ --route-response-key '$default'
Resultado do exemplo:
{ "RouteResponseId": "abcdef", "RouteResponseKey": "$default" }