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

4 minuti di lettura
0

Ho attivato la registrazione di Amazon CloudWatch per Gateway Amazon API, ma non sono riuscito a trovare alcun registro. In che modo posso ottenere i registri di CloudWatch per la risoluzione dei problemi di REST API di API Gateway?

Breve descrizione

Puoi utilizzare la registrazione di CloudWatch per consentire il debug di problemi relativi all'esecuzione delle richieste o all'accesso del client all'API. La registrazione di CloudWatch include la registrazione delle esecuzioni e la registrazione degli accessi.

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

Non tutti gli errori lato client rifiutati da API Gateway vengono registrati nei registri di esecuzione. Ad esempio, un client che effettua una richiesta API a un percorso di risorsa errato della REST API restituisce una risposta 403 "Token di autenticazione mancante". Questo tipo di risposta non viene registrato nei registri di esecuzione. Utilizza la registrazione degli accessi di CloudWatch per risolvere gli errori lato client.

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

API Gateway potrebbe non generare registri per:

  • Errori 413 Entità richiesta troppo grande.
  • Numero eccessivo di errori 429 Troppe richieste.
  • Errori della serie 400 provenienti da richieste inviate a un dominio personalizzato che non dispone di mappatura API.
  • Errori della serie 500 causati da guasti interni.

Per ulteriori informazioni, consulta Monitoraggio di REST API.

Risoluzione

Verifica le autorizzazioni di API Gateway per la registrazione di CloudWatch

Per attivare CloudWatch Logs, devi concedere l'autorizzazione API Gateway per leggere e scrivere i registri su CloudWatch per il tuo account. La policy gestita di AmazonAPIGatewayPushToCloudWatchLogs dispone delle autorizzazioni richieste.

Crea un ruolo AWS Identity and Access Management (IAM) con apigateway.amazonaws.com come entità attendibile. Quindi, allega 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": "*"
    }
  ]
}

Assicurati che:

  • Servizio di token di sicurezza AWS (AWS STS) sia 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 registri di CloudWatch.

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

Verifica le impostazioni di registrazione di API Gateway

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

Nota: puoi 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, seleziona API.

3.    Scegli la tua API, quindi scegli Fasi.

4.    In Fasi, scegli la tua fase, quindi scegli la scheda Registri/Tracciamento.

5.    In Impostazioni di CloudWatch, verifica quanto segue:
L'opzione Abilita CloudWatch Logs è selezionata.        Il livello Registro è impostato su INFO. Nota: se il livello Registro è impostato su ERROR, in API Gateway vengono registrate solo le richieste di errori. Le richieste API riuscite non vengono registrate.
Le opzioni Registra tutti i dati delle richieste/risposte e Abilita i parametri dettagliati di CloudWatch sono selezionati per i dati di registro aggiuntivi. Nota: è una best practice non abilitare l'opzione Registra tutti i dati delle richieste/risposte per le API di produzione, che può comportare la registrazione di dati sensibili.

6.    In Registrazione accesso personalizzato, verifica che l'opzione Abilita registrazione degli accessi sia selezionata.

Verifica il metodo di registrazione e sostituiscilo, se necessario

Per impostazione predefinita, tutte le risorse API utilizzano le stesse configurazioni della relativa fase. Questa impostazione può essere sostituita per avere configurazioni diverse per ogni metodo, se non desideri ereditare dalla fase.

1.    Apri la console API Gateway.

2.    Nel riquadro di navigazione, seleziona API.

3.    Scegli la tua API, quindi scegli Fasi.

4.    In Fasi, espandi il nome della fase, quindi scegli il metodo HTTP. Ad esempio, GET.

5.    In Impostazioni, scegli Sovrascrivi per questo metodo.

6.    In Impostazioni di CloudWatch, apporta ulteriori modifiche al registro per il tuo caso d'uso, se necessario, quindi scegli Salva modifiche.

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


Informazioni correlate

In che modo è possibile individuare gli errori dalla REST API di API Gateway nei registri di CloudWatch?

Come posso configurare la registrazione degli accessi per API Gateway?

In che modo posso abilitare CloudWatch Logs per la risoluzione dei problemi di REST API di API Gateway o API WebSocket?