Come posso risolvere gli errori 410 GoneException con le API WebSocket di Gateway Amazon API?
Quando provo a pubblicare un messaggio sulla mia API WebSocket di Gateway Amazon API, ricevo un errore "410 GoneException" simile al seguente: ... "errorMessage": "GoneException: 410" ... In che modo posso risolvere il problema?
Breve descrizione
Potresti ricevere l'errore "410 GoneException" se:
- All'API WebSocket è stato inviato un messaggio prima che la connessione fosse stabilita.
- La connessione è stata interrotta o non esiste più.
- Il client si è disconnesso e ha successivamente provato a riconnettersi utilizzando lo stesso connectionId.
Nota: per le API WebSocket, per inviare una risposta di callback dal back-end è necessario il connectionId.
Risoluzione
Per risolvere gli errori dell'API WebSocket, attiva File di log Amazon CloudWatch.
Nota: per Log level (Livello di registro), scegli INFO per generare registri di esecuzione per tutte le richieste.
I registri di esecuzione contengono informazioni che è possibile utilizzare per identificare e risolvere la maggior parte degli errori delle API. Ad esempio:
- Le richieste che la tua API riceve
- Le risposte del back-end di integrazione della tua API
- La risposta fornita dai sistemi di autorizzazione AWS Lambda
- L'ID della richiesta per gli endpoint di integrazione di AWS
Per ulteriori informazioni su ciascun tipo di registrazione, consulta i formati di registro di CloudWatch per Gateway API.
Prima di inviare messaggi alle API WebSocket, assicurati che la connessione sia stabilita richiamando l'operazione getConnection tramite l'SDK AWS ApiGatewayManagementApi.
Evita di effettuare la richiesta postToConnection dalla funzione Lambda integrata con la route $connect. Ad esempio, se desideri inviare un messaggio dopo avere stabilito la connessione client, procedi come segue:
- Crea una funzione Lambda secondaria richiamata in modo asincrono dalla funzione principale.
- All'avvio di una nuova connessione, viene richiamata la route $connect e la funzione principale richiama la funzione secondaria passando il connectionId.
- La funzione secondaria Lambda riceve il connectionId e richiama l'operazione getConnection per verificare che la connessione sia valida. Dopodiché, il messaggio viene inviato utilizzando il metodo postToConnection.
Informazioni correlate
Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata un mese fa