Ho associato una funzione AWS Lambda@Edge a una distribuzione Amazon CloudFront. Tuttavia, non riesco a trovare i log della funzione Lambda@Edge nel flusso di log di Amazon CloudWatch Logs.
Risoluzione
Verifica l'autorizzazione per il ruolo IAM associato alla funzione Lambda@Edge
Se il ruolo AWS Identity and Access Management (AWS IAM) associato alla funzione Lambda@Edge non ha le autorizzazioni richieste, i log di Lambda@Edge non vengono compilati. Verifica che il ruolo della funzione disponga delle autorizzazioni necessarie per creare gruppi e flussi di log e inserire eventi del log in qualsiasi Regione AWS.
Esempio di policy IAM:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": [
"arn:aws:logs:*:*:*"
]
}
]
}
Per ulteriori informazioni sulle autorizzazioni necessarie per inviare dati a CloudWatch Logs, consulta Configura le autorizzazioni e i ruoli IAM per Lambda@Edge.
Individua i log nella Regione in cui CloudFront invoca la funzione Lambda
Verifica la Regione nella console CloudFront. Se hai utilizzato la Regione non corretta, potresti non visualizzare i log.
Quando invochi la funzione Lambda@Edge, Lambda crea flussi di log di CloudWatch Logs nella Regione in cui è stata ricevuta la richiesta. Il nome del gruppo di log utilizza il seguente formato: /aws/lambda/us-east-1.function-name.
Per individuare i log della funzione Lambda@Edge, individua la Regione in cui CloudFront invoca la funzione. Completa i seguenti passaggi:
- Apri la console di CloudFront.
- In Telemetria, scegli Monitoraggio.
- Scegli la scheda Lambda@Edge.
- Seleziona la funzione Lambda@Edge, quindi View metrics (Visualizza metriche).
- Seleziona View function logs (Visualizza log funzione), quindi seleziona la Regione in cui CloudFront invoca la funzione.
Nota: se vedi errori in una Regione, seleziona quella Regione nel grafico della metrica Errors.
- Per verificare la posizione edge in cui CloudFront ha indirizzato la richiesta, controlla il valore dell'intestazione della risposta x-amz-cf-pop. Quindi controlla la Regione corrispondente in CloudWatch Logs per esaminare i file di log. Ad esempio, se x-amz-cf-pop è IAD89-P1, IAD è il codice dell'aeroporto e CloudFront ha indirizzato la richiesta a us-east-1.
Se Lambda restituisce una risposta non valida a CloudFront, CloudFront registra i messaggi di errore nei file di log, dopodiché pubblica i log su CloudWatch Logs nella Regione in cui è stata eseguita la funzione Lambda. I gruppi di log utilizzano il seguente formato: /aws/cloudfront/LambdaEdge/DistributionId. Per individuare la Regione in cui puoi trovare il file di log di CloudWatch Logs, consulta Determina la Regione Lambda@Edge.
Informazioni correlate
Report, metriche e log
Determina se il tuo account invia i log a CloudWatch