Salta al contenuto

Come posso risolvere gli errori di connessione di un'API WebSocket di Gateway API?

3 minuti di lettura
0

Quando provo a connettermi alla mia API WebSocket di Gateway Amazon API, ricevo errori.

Breve descrizione

Gli errori di connessione di un'API WebSocket di Gateway API possono verificarsi per i seguenti motivi:

  • Autorizzazioni insufficienti per effettuare la richiesta al backend
  • Campi errati per l'ID dell'API, la Regione AWS e la fase dell'API
  • Errori nell'integrazione del backend
  • Errori di autenticazione di AWS Identity and Access Management (AWS IAM)

Risoluzione

Verifica che l'API WebSocket abbia le autorizzazioni necessarie per effettuare una richiesta al backend

Gateway API utilizza ruoli, policy, tag e Sistemi di autorizzazione AWS Lambda IAM per controllare l'accesso a un'API WebSocket. Per effettuare una richiesta al backend, Gateway API deve avere le autorizzazioni corrette per queste risorse. Per ulteriori informazioni, consulta Controllo e gestione degli accessi alle API WebSocket in Gateway API.

Inoltre, assicurati di configurare correttamente la richiesta di integrazione dell'API WebSocket.

Verifica che la richiesta sia inviata all'ID dell'API, alla Regione e alla fase dell'API corretti

Verifica le informazioni della richiesta. Nel seguente esempio di URL di richiesta, assicurati che i seguenti campi siano corretti:

wss://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/production
  • L'ID dell'API WebSocket è a1b2c3d4e5.
  • La Regione per la richiesta è us-east-1.
  • Il nome della fase dell’API production esiste.

Controlla eventuali errori nei log di CloudWatch

Per ulteriori informazioni sulla risoluzione dei problemi, attiva i log di Amazon CloudWatch per la risoluzione dei problemi relativi alle API WebSocket di Gateway API. Se integri una funzione Lambda per il backend, controlla la presenza di errori nei log di CloudWatch. Per ulteriori informazioni, consulta Invio dei log delle funzioni Lambda a CloudWatch Logs.

Verifica che la richiesta API sia firmata

Se attivi l'autenticazione IAM per il metodo API, assicurati che la richiesta API sia firmata con Signature Version 4 (Sigv4). Per ulteriori informazioni, consulta Creare una richiesta API AWS firmata.

Per attivare l'autenticazione IAM per l'API di Gateway API, completa i seguenti passaggi:

  1. Nella console Gateway API, seleziona l'API Websocket.
  2. In Instradamenti, scegli $connect.
    Nota: puoi specificare le impostazioni di autorizzazione solo per la route $connect. L'impostazione Autorizzazione viene applicata all'intera API, non solo alla route $connect. La route $connect protegge le altre route. Poiché la route $connect viene richiamata per ogni connessione, la route $connect protegge tutte le altre route.
  3. In Richiesta di instradamento, in Impostazioni della richiesta di instradamento, scegli Modifica.
  4. Per Autorizzazione, scegli AWS IAM dall'elenco a discesa, quindi seleziona Salva modifiche.
  5. Affinché le modifiche abbiano effetto, distribuisci l'API WebSocket.

Informazioni correlate

Monitoraggio dell'esecuzione dell'API WebSocket con le metriche CloudWatch

Controllo degli accessi alle API WebSocket con sistemi di autorizzazione REQUEST AWS Lambda