Ir para o conteúdo

Como posso solucionar erros de conexão da API de WebSocket do API Gateway?

3 minuto de leitura
0

Quando tento me conectar à minha API de WebSocket do Amazon API Gateway, recebo erros.

Breve descrição

Os erros de conexão da API de WebSocket do API Gateway podem ocorrer pelos seguintes motivos:

  • Permissões insuficientes para fazer a solicitação ao backend
  • Campos incorretos de ID da API, região da AWS e estágio da API
  • Erros na integração do backend
  • Erros de autenticação do AWS Identity and Access Management (AWS IAM)

Resolução

Confirmar se a API de WebSocket tem as permissões necessárias para fazer uma solicitação ao backend

O API Gateway usa perfis do IAM, políticas, tags e AWS Lambda Authorizers para controlar o acesso a uma API de WebSocket. Para fazer uma solicitação ao backend, o API Gateway precisa ter as permissões corretas para esses recursos. Para mais informações, consulte Controlar e gerenciar o acesso a APIs de WebSocket no API Gateway.

Além disso, certifique-se de configurar corretamente a solicitação de integração da API de WebSocket.

Confirmar se enviou a solicitação para o ID de API, a região e o estágio de API corretos

Em sua solicitação, certifique-se de verificar as informações dela. No exemplo de URL de solicitação a seguir, verifique se os campos a seguir estão corretos:

wss://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/production
  • O ID da API de WebSocket é a1b2c3d4e5.
  • A região da solicitação é us-east-1.
  • O nome production do estágio da API existe.

Verificar se há erros nos CloudWatch Logs

Para mais informações sobre solução de problemas, ative os Amazon CloudWatch Logs para solucionar problemas de APIs de WebSocket do API Gateway. Se você integrar uma função do Lambda para o backend, verifique se há erros nos CloudWatch Logs. Para mais informações, consulte Enviar logs de função do Lambda para o CloudWatch Logs.

Confirmar se a solicitação da API está assinada

Se você ativar a autenticação do IAM para o método da API, certifique-se de que a solicitação da API esteja assinada com a Signature Version 4 (SigV4). Para mais informações, consulte Crie uma solicitação assinada de API da AWS.

Para ativar a autenticação do IAM para sua API do API Gateway, conclua as seguintes etapas:

  1. No console do API Gateway, selecione sua API de Websocket.
  2. Em Rotas, escolha $connect.
    Observação: é possível especificar configurações de autorização somente para a rota $connect. A configuração de Autorização é aplicada a toda a API, não apenas à rota $connect. A rota $connect protege as outras rotas. Como a rota $connect é chamada para cada conexão, a rota $connect protege todas as outras rotas.
  3. Em Solicitação de rota, em Configurações de solicitação de rota, escolha Editar.
  4. Em Autorização, escolha AWS IAM na lista suspensa e, em seguida, Salvar alterações.
  5. Para que as alterações entrem em vigor, implante sua API de WebSocket.

Informações relacionadas

Monitorar a execução da API de WebSocket com CloudWatch Metrics

Controlar o acesso a APIs de WebSocket com autorizadores REQUEST do AWS Lambda