Come posso utilizzare i log di Gateway Amazon API per la risoluzione dei problemi?

4 minuti di lettura
0

Desidero utilizzare i log di Gateway Amazon API per risolvere i problemi relativi alle API.

Breve descrizione

Per risolvere i problemi di un'API Gateway REST API o di un'API WebSocket, attiva la registrazione delle esecuzioni e la registrazione degli accessi utilizzando i File di log Amazon CloudWatch. Assicurati di avere associato tutte le autorizzazioni richieste al ruolo AWS Identity and Access Management (IAM) di Gateway API. Per istruzioni, consulta In che modo posso abilitare CloudWatch Logs per la risoluzione dei problemi di REST API di API Gateway o API WebSocket?

Nota: le API HTTP attualmente supportano solo la registrazione degli accessi e richiedono una configurazione della registrazione specifica. Per ulteriori informazioni, consulta Configuring logging for an HTTP API (Configurazione della registrazione per un'API HTTP).

Risoluzione

Dopo avere attivato la registrazione, Gateway API crea automaticamente un gruppo di log di CloudWatch denominato API-Gateway-Execution-Logs/{rest-api-id}/{stage-name}. Per ulteriori informazioni, consulta la sezione Formati dei log di CloudWatch per API Gateway.

Sistemi di autorizzazione AWS Lambda

Se hai attivato i sistemi di autorizzazione Lambda per l'API, i log indicano se la richiesta è autorizzata e includono l'autorizzazione e gli ID della richiesta.

Esempi di log autorizzati:

Starting authorizer: 62mgrc for request: 3323ffe5-6ddf-45c8-896a-b45ec2284cc0
Successfully completed authorizer execution

Esempi di log non autorizzati:

Starting authorizer: 62mgrc for request: fd443056-60d0-425f-874e-e93e5d61351e
Unauthorized request: fd443056-60d0-425f-874e-e93e5d61351e

Piani di utilizzo

Dopo i log dei sistemi di autorizzazione Lambda, Gateway API verifica il piano di utilizzo per la richiesta API. Se non hai configurato un piano di utilizzo, le richieste API non vengono conteggiate per le soglie di limitazione.

Esempi di log dei piani di utilizzo:

Verifying Usage Plan for request: 3323ffe5-6ddf-45c8-896a-b45ec2284cc0. API Key: API Stage: <api_id>/<stage>
API Key authorized because method 'GET /' does not require API Key. Request will not contribute to throttle or quota limits
Usage Plan check succeeded for API Key and API Stage <api_id>/<stage>

Se hai configurato le API con chiavi API ma manca l'intestazione X-API-Key, i log restituiscono un errore simile al seguente:

API Key not authorized because method 'GET /' requires API Key and API 
Key is not associated with a Usage Plan for API Stage 
<api_id>/<stage>: API Key was required but not present

Se hai aggiunto la chiave API corretta nell'intestazione ma la richiesta è limitata, i log restituiscono un errore simile al seguente:

API Key **********************************FGQes7 exceeded throttle limit for API Stage <api_id>/<stage>: Key throttle limit exceeded for Usage Plan ID iwuzkt. Limit: 5.00 Burst: 0
Method completed with status: 429

Tipi di log delle richieste

Nota: tutti i tipi di log delle richieste richiedono l'attivazione di Log full requests/responses data (Registra i dati completi delle richieste/risposte) nei log di esecuzione.

Log delle richieste di metodo

I log delle richieste di metodo includono informazioni dettagliate ricevute da una richiesta API, tra cui il percorso della richiesta, il parametro della query, nonché l'intestazione e il corpo della richiesta.

Log delle richieste degli endpoint

I log delle richieste degli endpoint includono informazioni dettagliate ricevute da una richiesta API, tra cui l'URI, le intestazioni e il corpo della richiesta.

I dati inclusi nelle richieste degli endpoint vengono inviati all'integrazione del back-end per un'ulteriore elaborazione.

Log delle risposte degli endpoint

I log delle risposte degli endpoint includono i dati restituiti dall'integrazione del back-end, inclusi il codice di stato, il corpo delle intestazioni e la latenza dell'integrazione.

Log delle risposte del metodo

I log delle risposte del metodo includono le intestazioni e il corpo inviati al client dopo la trasformazione.

Importante: Gateway API limita i log eventi a 1.024 byte. I log eventi più grandi di 1.024 byte, come i corpi delle richieste e delle risposte, vengono troncati da Gateway API prima di essere inviati ai log di CloudWatch.


Informazioni correlate

Come posso risolvere i problemi relativi ai log CloudWatch mancanti per le REST API di Gateway API?

Configurazione della registrazione di CloudWatch per una REST API in Gateway API

Monitoraggio dell'esecuzione di REST API con i parametri di Amazon CloudWatch

Monitoraggio dell'esecuzione dell'API WebSocket con i parametri di CloudWatch