Saltar al contenido

¿Cómo puedo solucionar los errores de conexión a la API de WebSocket de API Gateway?

3 minutos de lectura
0

Cuando intento conectarme a mi API de WebSocket de Amazon API Gateway, se muestran errores.

Descripción corta

Los errores de conexión a la API de WebSocket de API Gateway pueden producirse por los siguientes motivos:

  • Permisos insuficientes para realizar la solicitud al backend
  • Campos incorrectos para el ID de API, la región de AWS y la etapa de API
  • Errores en la integración del backend
  • Errores de autenticación de AWS Identity and Access Management (IAM)

Resolución

Confirmar que la API de WebSocket tiene los permisos necesarios para realizar una solicitud al backend

API Gateway usa roles de IAM, políticas, etiquetas y autorizadores de AWS Lambda para controlar el acceso a una API de WebSocket. Para realizar una solicitud al backend, API Gateway debe tener los permisos correctos para estos recursos. Para obtener más información, consulta Control y administración del acceso a las API de WebSocket en API Gateway.

Además, asegúrate de configurar correctamente la solicitud de integración de la API de WebSocket.

Confirmar que se ha enviado la solicitud al ID de API, la región y la etapa de API correctos

Para tu solicitud, asegúrate de verificar la información de la solicitud. En el siguiente ejemplo de URL de solicitud, asegúrate de que los campos siguientes son correctos:

wss://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/production
  • El ID de API de WebSocket es a1b2c3d4e5.
  • La región de la solicitud es us-east-1.
  • La producción de nombres de etapa de API existe.

Comprobar si hay errores en los registros de CloudWatch

Para obtener más información sobre la solución de problemas, activa los registros de Amazon CloudWatch para solucionar problemas con las API de WebSocket de API Gateway. Si integras una función de Lambda para el backend, comprueba si hay errores en los registros de CloudWatch. Para obtener más información, consulta Envío de registros de funciones de Lambda a Registros de CloudWatch.

Confirmar que la solicitud de API esté firmada

Si activas la autenticación de IAM para el método de API, asegúrate de que la solicitud de API esté firmada con Signature Version 4 (SIGv4). Para obtener más información, consulta Creación de una solicitud de API de AWS firmada.

Para activar la autenticación de IAM en tu API de API Gateway, sigue estos pasos:

  1. En la consola de API Gateway, selecciona tu API de Websocket.
  2. En Rutas, elige $connect.
    Nota: Puedes especificar la configuración de autorización solo para la ruta $connect. La configuración de autorización se aplica a toda la API, no solo a la ruta $connect. La ruta $connect protege las demás rutas. Como se activa la ruta $connect en cada conexión, $connect protege todas las demás rutas.
  3. En Solicitud de ruta, en Configuración de solicitud de ruta, selecciona Editar.
  4. En Autorización, elige AWS IAM en la lista desplegable y, a continuación, selecciona Guardar cambios.
  5. Para que los cambios surtan efecto, despliega tu API de WebSocket.

Información relacionada

Supervisión de la ejecución de la API de WebSocket con métricas de CloudWatch

Control del acceso a las API de WebSocket con autorizadores REQUEST de AWS Lambda