Configurar respostas de rotas para APIs de WebSocket no API Gateway - Amazon API Gateway

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.

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:

  1. 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.

  2. Em Routes (Rotas), selecione a rota $default.

  3. Selecione Habilitar comunicação bidirecional.

  4. Escolha Implantar API.

  5. Implante a API em um estágio.

Use o comando wscat a seguir para se conectar à sua API. Para obter mais informações sobre o wscat, 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-id 1122334 \ --route-response-key '$default'

Resultado do exemplo:

{ "RouteResponseId": "abcdef", "RouteResponseKey": "$default" }