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

Data da última atualização: 17/11/2022

Tentei me conectar à minha API de WebSocket do Amazon API Gateway, mas recebi erros. Como soluciono problemas relacionados à minha conexão com a API de WebSocket?

Breve descrição

Erros de conexão da API de WebSocket do API Gateway podem ocorrer devido a:

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

Resolução

Siga estas etapas de solução de problemas para o caso de uso.

Confirme 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, etiquetas e AWS Lambda Authorizers para controlar o acesso a uma API de WebSocket. Para obter mais informações, consulte Controlar e gerenciar o acesso a uma API de WebSocket no API Gateway.

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

Confirme se a solicitação foi enviada para o ID da API, a região da AWS e o estágio da API corretos

Neste exemplo de URL de solicitação, verifique se os seguintes campos estão corretos:

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

Verifique se há erros nos logs do CloudWatch

Siga as instruções para ativar os logs do Amazon CloudWatch para solucionar problemas de APIs de WebSocket do API Gateway. Se uma função do Lambda estiver integrada ao backend, verifique se há erros nos logs do CloudWatch. Para obter mais informações, consulte Acessar logs do CloudWatch para o AWS Lambda.

Confirme que a solicitação da API está assinada se o método da API tiver a autenticação do IAM ativada

Se a autenticação do IAM estiver ativada, certifique-se de que a solicitação da API esteja assinada com o Signature Version 4 (SigV4). Para obter mais informações, consulte Assinar solicitações da AWS com o Signature Version 4.

Para ativar a autenticação do IAM para sua API do API Gateway, siga estas etapas:

  1. No console do API Gateway, escolha o nome da sua API.
  2. No painel Recursos, escolha um método (como GET ou POST) para o qual você deseja ativar a autenticação do IAM.
  3. No painel Method Execution (Execução do método), escolha Method Request (Solicitação de método).
  4. Em Settings (Configurações), para Authorization (Autorização), escolha o ícone de lápis (Editar). Escolha AWS_IAM na lista suspensa e, em seguida, escolha o ícone de marca de seleção (Atualizar).
  5. (Opcional) Repita as etapas 2 a 4 para cada método de API para o qual você deseja ativar a autenticação do IAM.
  6. Implante sua API de WebSocket para que as alterações entrem em vigor.