Salta al contenuto

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

4 minuti di lettura
0

Desidero risolvere il motivo per cui non riesco a trovare alcun log quando attivo Amazon CloudWatch Logs per Gateway Amazon API.

Breve descrizione

Quando configuri la registrazione di CloudWatch per le REST API in Gateway API, puoi utilizzare la registrazione dell'esecuzione e la registrazione degli accessi. Gateway API non registra tutti gli errori lato client che respinge nei log di esecuzione. Ad esempio, se un client effettua una richiesta API a un percorso di risorsa errato della REST API, il client riceve la seguente risposta: "403 Missing Authentication Token". Gateway API non registra questo tipo di risposta nei log di esecuzione. Per risolvere gli errori sul lato client, utilizza la registrazione degli accessi di CloudWatch.

Gateway API potrebbe non generare log per i seguenti errori:

  • Errori "413 Request Entity Too Large"
  • Errori "431 Request Header Fields Too Large"
  • Errori "Excessive 429 Too Many Requests"
  • Errori della serie 400 che si verificano perché il client ha inviato richieste a un dominio personalizzato senza mappatura API
  • Errori della serie 500 che si verificano a causa di guasti interni

Per ulteriori informazioni, consulta Monitora le REST API in Gateway API.

Risoluzione

Verifica le autorizzazioni di Gateway API per CloudWatch Logs

Per attivare CloudWatch Logs, devi concedere a Gateway API l'autorizzazione a leggere e scrivere log su CloudWatch per l'account AWS.

Innanzi tutto, crea un ruolo AWS Identity and Access Management (AWS IAM) con apigateway.amazonaws.com come entità attendibile. Quindi collega al ruolo la policy gestita da Amazon AmazonAPIGatewayPushToCloudWatchLogs. Imposta il nome della risorsa Amazon (ARN) del ruolo su cloudwatchRoleArn per l'account.

Esempio di policy:

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

Nota: assicurati di attivare il Servizio di token di sicurezza AWS (AWS STS) per la Regione AWS. Inoltre, verifica di aver attivato il ruolo IAM per tutte le Regioni in cui desideri attivare CloudWatch Logs.

Per ulteriori informazioni, consulta Attivazione e disattivazione di AWS STS in una Regione AWS e Autorizzazioni per la registrazione CloudWatch.

Verifica le impostazioni di registrazione di Gateway API

Verifica di aver configurato correttamente le impostazioni di registrazione dell'esecuzione o degli accessi di CloudWatch per Gateway API.

Nota: puoi attivare la registrazione dell'esecuzione e la registrazione degli accessi indipendentemente l'una dall'altra.

Completa i seguenti passaggi:

  1. Apri la console Gateway API.
  2. Nel pannello di navigazione, scegli API.
  3. Scegli l'API, quindi seleziona Fasi.
  4. Scegli la fase, quindi scegli la scheda Log/Tracciamento.
  5. In Impostazioni CloudWatch, seleziona Abilita CloudWatch Logs.
  6. Imposta Livello log su ERROR e INFO.
    Nota: se imposti Livello log su ERROR, Gateway API registra solo gli errori di richiesta e non registra le richieste API riuscite.
  7. Seleziona Tracciamento dei dati per attivare la registrazione del tracciamento dei dati per la fase.
    Nota: è consigliabile non attivare Tracciamento dei dati per le API di produzione perché Gateway API potrebbe registrare dati sensibili.
  8. Per Registrazione accesso personalizzato, scegli Abilita la registrazione dell'accesso.

Verifica il metodo di registrazione

Per impostazione predefinita, tutte le risorse API utilizzano la stessa configurazione della fase delle risorse API. Se non vuoi ereditare la fase, sostituisci l'impostazione con configurazioni diverse.

Per verificare il metodo di registrazione, completa i seguenti passaggi:

  1. Apri la console Gateway API.
  2. Nel pannello di navigazione, scegli API.
  3. Scegli l'API, quindi seleziona 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.
    Nota: per apportare ulteriori modifiche al registro, aggiorna le impostazioni necessarie nella sezione Impostazioni CloudWatch.
  6. Scegli Salva modifiche.

Informazioni correlate

Come faccio a trovare gli errori delle REST API in Gateway API nei miei log di CloudWatch?

Come posso configurare la registrazione degli accessi di Gateway API?

Come posso attivare CloudWatch Logs per risolvere i problemi della mia REST API o API WebSocket di Gateway API?