Lorsque j'essaie de me connecter à mon API WebSocket d’Amazon API Gateway, des messages d'erreur s'affichent.
Brève description
Des erreurs de connexion à l'API WebSocket d’API Gateway peuvent survenir pour les raisons suivantes :
- Autorisations insuffisantes pour adresser la demande au backend
- Champs incorrects pour l'ID d'API, la région AWS et l'étape d'API
- Erreurs lors de l'intégration du backend
- Erreurs d’authentification de Gestion des identités et des accès AWS (AWS IAM)
Résolution
Vérifier que l'API WebSocket dispose des autorisations requises pour envoyer une demande au backend
API Gateway utilise des rôles, des politiques, des identifications IAM et des autorisations AWS Lambda pour contrôler l'accès à une API WebSocket. Pour adresser une demande au backend, API Gateway doit disposer des autorisations appropriées pour ces ressources. Pour plus d'informations, consultez la section Contrôler et gérer l'accès aux API WebSocket dans API Gateway.
Assurez-vous également de configurer correctement la demande d'intégration de l'API WebSocket.
Vérifier que vous envoyez la demande à l'ID d'API, à la région et à l'étape d'API appropriés
Pour votre demande, assurez-vous de vérifier les informations correspondantes. Dans l'exemple d'URL de demande suivant, assurez-vous que les champs suivants sont corrects :
wss://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/production
- L'ID de l'API WebSocket est a1b2c3d4e5.
- La région visée par la demande est us-east-1.
- La production du nom d’étape d’API existe.
Vérifier la présence d'erreurs dans les journaux CloudWatch
Pour plus d'informations sur la résolution des problèmes, activez les journaux Amazon CloudWatch pour résoudre les problèmes liés aux API WebSocket d'API Gateway. Si vous intégrez une fonction Lambda pour le backend, vérifiez la présence d'erreurs dans les journaux CloudWatch. Pour plus d'informations, consultez la section Envoi des journaux de fonctions Lambda à CloudWatch Logs.
Vérifier que la demande d'API est signée
Si vous activez l'authentification IAM pour la méthode API, assurez-vous que la demande d'API est signée avec Signature Version 4 (Sigv4). Pour plus d'informations, consultez la section Créer une demande d'API AWS signée.
Pour activer l'authentification IAM pour votre API API Gateway, procédez comme suit :
- Dans la console API Gateway, sélectionnez votre API Websocket.
- Sous Routes, choisissez $connect.
Remarque : Vous pouvez spécifier des paramètres d'autorisation uniquement pour la route $connect. Le paramètre Autorisation est appliqué à l'API entier, et pas seulement à la route $connect. La route $connect protège les autres routes. La route $connect étant appelée pour chaque connexion, la route $connect protège toutes les autres routes.
- Dans Requête de routage, sous Paramètres de requête de routage, choisissez Modifier.
- Pour Autorisation, choisissez AWS IAM dans la liste déroulante, puis sélectionnez Enregistrer les modifications.
- Pour que les modifications prennent effet, déployez votre API WebSocket.
Informations connexes
Surveiller l’exécution de l’API WebSocket à l’aide des métriques CloudWatch
Contrôler l'accès aux API WebSocket avec les autorisateurs AWS Lambda REQUEST