Comment puis-je résoudre les erreurs de connexion à l'API WebSocket dans API Gateway ?

Dernière mise à jour : 17/11/2022

J'ai essayé de me connecter à mon API WebSocket dans Amazon API Gateway, mais j'ai reçu des erreurs. Comment résoudre les problèmes de connexion à l'API WebSocket ?

Brève description

Des erreurs de connexion à l'API WebSocket dans API Gateway peuvent survenir pour les raisons suivantes :

  • Autorisations insuffisantes pour faire la demande au backend
  • Champs incorrects pour l'ID d'API, la région AWS et l'étape d'API
  • Erreurs dans l'intégration du backend
  • Erreurs d'authentification AWS Identity and Access Management (IAM)

Résolution

Suivez ces étapes de dépannage en fonction de votre cas d'utilisation.

Vérifiez que l'API WebSocket dispose des autorisations requises pour envoyer une demande au backend

API Gateway utilise des rôles IAM, des politiques, des balises et des mécanismes d'autorisation AWS Lambda pour contrôler l'accès à une API WebSocket. Pour plus d'information, consultez Contrôle et gestion de l'accès à une API Websocket dans API Gateway.

Assurez-vous également que la demande d'intégration de l'API WebSocket est correctement configurée.

Vérifiez que la demande est envoyée à l'ID d'API, à la région AWS et à l'étape d'API appropriés

Dans cet exemple d'URL de demande, assurez-vous que les champs suivants sont corrects :

wss://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/production
  • L'ID d'API WebSocket « a1b2c3d4e5 ».
  • La région AWS « us-east-1 ».
  • Le nom d'étape d'API « production » existe.

Vérifiez les journaux CloudWatch pour détecter les erreurs

Suivez les instructions pour activer les journaux Amazon CloudWatch afin de résoudre les problèmes liés aux API WebSocket dans API Gateway. Si une fonction Lambda est intégrée au backend, consultez les journaux CloudWatch pour détecter les erreurs. Pour plus d'informations, consultez la page Accès aux journaux CloudWatch pour AWS Lambda.

Vérifier que la demande d'API est signée si l'authentification IAM est activée pour la méthode API

Si l'authentification IAM est activée, assurez-vous que la demande d'API est signée avec Signature Version 4 (Sigv4). Pour plus d'informations, consultez Signer les demandes AWS avec Signature Version 4.

Pour activer l'authentification IAM pour votre API dans API Gateway, procédez comme suit :

  1. Dans la console API Gateway, choisissez le nom de votre API.
  2. Dans le volet Resources (Ressources), choisissez une méthode (par exemple, GET ou POST) pour laquelle vous souhaitez activer l'authentification IAM.
  3. Dans le volet Method Execution (Exécution de la méthode), sélectionnez Method Request (Demande de méthode).
  4. Sous Settings (Paramètres), pour Authorization (Autorisation), choisissez l'icône de crayon (Edit [Modifier]). Choisissez AWS_IAM dans la liste déroulante, puis cliquez sur l'icône de coche (Update [Mettre à jour]).
  5. (Facultatif) Répétez les étapes 2 à 4 pour chaque méthode d'API pour laquelle vous souhaitez activer l'authentification IAM.
  6. Déployez votre API Websocket pour que les modifications prennent effet.