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

4 minuti di lettura
0

Pur avendo attivato la registrazione di Amazon CloudWatch per Amazon API Gateway, ma non sono riuscito a trovare alcun log.

Breve descrizione

Puoi utilizzare i log di CloudWatch per risolvere più agevolmente i problemi relativi all'esecuzione delle richieste o all'accesso dei client alla tua API. I log di CloudWatch includono la registrazione delle esecuzioni e la registrazione degli accessi.

Per la registrazione delle esecuzioni, API Gateway gestisce i log di CloudWatch, inclusa la creazione di gruppi di log e stream di log. Per la registrazione degli accessi, puoi creare i tuoi gruppi di log o scegliere i gruppi di log esistenti.

Non tutti gli errori lato client rifiutati da API Gateway vengono registrati nei log di esecuzione. Per esempio, un client che effettua una richiesta API a un percorso di risorsa errato della tua API REST restituisce una risposta 403 “Missing Authentication Token”. Questo tipo di risposta non viene registrato nei log di esecuzione. Utilizza la registrazione degli accessi di CloudWatch per risolvere gli errori lato client.

Per ulteriori informazioni, consulta Formati di log di CloudWatch per API Gateway.

API Gateway potrebbe non generare log per:

  • Errori 413 Request Entity Too Large.
  • Errori Excessive 429 Too Many Requests.
  • Errori della serie 400 derivanti da richieste inviate a un dominio personalizzato privo di mappatura API.
  • Errori della serie 500 causati da guasti interni.

Per ulteriori informazioni, consulta Monitoraggio delle API REST.

Risoluzione

Verifica le autorizzazioni API Gateway per i log di CloudWatch

Per attivare CloudWatch Logs, devi concedere ad API Gateway l'autorizzazione a leggere e scrivere i log su CloudWatch per il tuo account. La policy gestita AmazonApiGatewayPushtoCloudWatchLogs dispone delle autorizzazioni necessarie.

Crea un ruolo AWS Identity and Access Management (IAM) con apigateway.amazonaws.com come entità attendibile. Quindi, collega la seguente policy al ruolo IAM e imposta l'ARN del ruolo IAM sulla proprietà CloudWatchRolearn per il tuo account AWS:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams",
        "logs:PutLogEvents",
        "logs:GetLogEvents",
        "logs:FilterLogEvents"
      ],
      "Resource": "*"
    }
  ]
}

Verifica quanto segue:

  • AWS Security Token Service (AWS STS) è attivato per la tua regione AWS. Per ulteriori informazioni, consulta Gestione di AWS STS in una regione AWS.
  • Il ruolo IAM è attivato per tutte le regioni AWS in cui desideri attivare i log di CloudWatch.

Per ulteriori informazioni, consulta Autorizzazioni per la registrazione di CloudWatch.

Verifica le impostazioni di registrazione di API Gateway

Verifica che le impostazioni per la registrazione delle esecuzioni o la registrazione degli accessi di CloudWatch siano attivate per API Gateway.

Nota: è possibile attivare la registrazione delle esecuzioni e la registrazione degli accessi indipendentemente l'una dall'altra.

  1. Apri la console API Gateway.
  2. Nel riquadro di navigazione, scegli API.
  3. Scegli la tua API, quindi scegli Stages.
  4. In Stages, scegli la tua fase, quindi scegli la scheda ** Logs/Tracing**.
  5. in Impostazioni di CloudWatch, verifica quanto segue:
    L'opzione Abilita CloudWatch Logs è selezionata.
    Il Livello di log è impostato su INFO. Nota: se il livello di log è impostato su ERROR, vengono registrate solo le richieste di errore in API Gateway. Le richieste API riuscite non vengono registrate.
    Le opzioni Registra i dati completi delle richieste/risposte e ** Abilita metriche dettagliate di CloudWatch** sono selezionati per i dati di log aggiuntivi.
    Nota: è consigliabile non abilitare **Registra i dati completi delle richieste/risposte ** per le API di produzione che possono comportare la registrazione di dati sensibili.
  6. In Registrazione personalizzata degli accessi, verifica che l'opzione Abilita la registrazione degli accessi sia selezionata.

Verifica il metodo di registrazione e modificalo se necessario

Per impostazione predefinita, tutte le risorse API utilizzano le stesse configurazioni della loro fase. Questa impostazione può essere modificata per avere configurazioni diverse per ogni metodo se non si desidera ereditarla dalla fase.

  1. Apri la console API Gateway.
  2. Nel riquadro di navigazione, scegli API.
  3. Scegli la tua API, quindi scegli Stages.
  4. In Stages, espandi il nome della fase. Quindi scegli il tuo metodo HTTP. Per esempio, GET.
  5. In Impostazioni, scegli Override for this method.
  6. In Impostazioni di CloudWatch, apporta eventuali modifiche al log aggiuntive per il tuo caso d'uso, se necessario, quindi scegli Salva modifiche.

Per ulteriori informazioni, consulta Configurazione della registrazione di CloudWatch per un'API REST in API Gateway.

Informazioni correlate

Come faccio a trovare gli errori di un’API REST di API Gateway nei miei log di CloudWatch?

Come posso configurare la registrazione degli accessi per API Gateway?

Come faccio ad attivare i log di CloudWatch per la risoluzione dei problemi relativi alla mia REST API o alla mia API WebSocket di API Gateway?