Registri delle funzioni Edge
Puoi utilizzare Amazon CloudWatch Logs per ottenere i log per entrambe le funzioni edge Lambda@Edge e Funzioni CloudFront. Puoi accedere ai log utilizzando la console CloudWatch o l’API CloudWatch Logs.
Importante
Ti consigliamo di utilizzare i log per comprendere la natura delle richieste per il tuo contenuto e non come resoconto completo di tutte le richieste. CloudFront fornisce i log delle funzioni edge sulla base del miglior tentativo. È possibile che la voce di log per una specifica richiesta venga distribuita molto tempo dopo l'elaborazione effettiva della richiesta e, in rari casi, che non venga distribuita affatto. Quando una voce di log viene omessa dai log delle funzioni edge, il numero di voci nei log delle funzioni edge non corrisponderà all'utilizzo visualizzato nei report di utilizzo e fatturazione di AWS.
Registri di Lambda@Edge
Lambda@Edge invia automaticamente i log delle funzioni a CloudWatch Logs, creando flussi di log nelle Regioni AWS dove vengono invocate le funzioni. Quando crei o modifichi una funzione in AWS Lambda, puoi utilizzare il nome del gruppo di log di CloudWatch predefinito o personalizzarlo.
-
Il nome predefinito del gruppo di log è
/aws/lambda/, dove<FunctionName>è il nome specificato al momento della creazione della funzione. Quando si inviano i log a CloudWatch, Lambda@Edge aggiunge automaticamente il prefisso<FunctionName>us-east-1al nome della funzione, in modo che il nome del gruppo di log sia/aws/lambda/us-east-1.. Questo prefisso corrisponde alla Regione AWS in cui è stata creata la funzione. Questo prefisso rimane parte del nome del gruppo di log, anche in altre regioni in cui viene invocata la funzione.<FunctionName> -
Se si specifica un nome di gruppo di log personalizzato, come
/, Lambda@Edge non aggiungerà il prefisso Regione. Il nome del gruppo di log rimane lo stesso in tutte le altre regioni in cui viene invocata la funzione.MyLogGroup
Nota
Se si crea un gruppo di log personalizzato e si specifica lo stesso nome di quello predefinito /aws/lambda/, Lambda@Edge aggiunge il prefisso <FunctionName>us-east-1 al nome della funzione.
Oltre alla personalizzazione del nome del gruppo di log, le funzioni Lambda@Edge supportano i formati di log JSON e testo normale e il filtraggio a livello di log. Per ulteriori informazioni, consulta Configurazione dei controlli di registrazione di log avanzati per la funzione Lambda nella Guida per gli sviluppatori di AWS Lambda.
Nota
Lambda@Edge sottopone a throttling i log in base al volume di richieste e alla dimensione dei log.
È necessario esaminare i file di log CloudWatch nella regione corretta per visualizzare i file di log delle funzioni Lambda@Edge. Per visualizzare le regioni in cui la funzione Lambda@Edge è in esecuzione, visualizzare i grafici dei parametri per la funzione nella console CloudFront. I parametri vengono visualizzati per ogni regione . Nella stessa pagina, puoi scegliere una regione e quindi visualizzare i file di registro per tale regione, in modo da analizzare i problemi.
Per ulteriori informazioni su come utilizzare CloudWatch Logs con le funzioni Lambda@Edge, consulta i seguenti argomenti:
-
Per ulteriori informazioni sulla visualizzazione di grafici nella sezione Monitoraggio della console CloudFront, consulta Monitoraggio delle metriche CloudFront con Amazon CloudWatch.
-
Per informazioni sulle autorizzazioni necessarie per inviare dati ai CloudWatch Logs, vedere Configurazione di ruoli e autorizzazioni IAM per Lambda@Edge.
-
Per informazioni sull'aggiunta della registrazione a una funzione Lambda@Edge, consulta Registrazione della funzione AWS Lambda in Node.js o Registrazione della funzione AWS Lambda in Python nella Guida per gli sviluppatori di AWS Lambda.
-
Per informazioni sulle quote CloudWatch Logs (precedentemente note come limiti), vedere Quote CloudWatch Logs nella Guida per l'utente di Amazon CloudWatch Logs.
Registri di Funzioni CloudFront
Se il codice di una funzione CloudFront contiene istruzioni console.log(), Funzioni CloudFront invia automaticamente queste righe di registro ai file di log CloudWatch. Se non ci sono istruzioni console.log(), nulla viene inviato a CloudWatch Logs.
CloudFront Functions crea sempre flussi di log nella regione Stati Uniti orientali (Virginia settentrionale) (us-east-1), indipendentemente dalla edge location che ha eseguito la funzione. Il nome del gruppo di log è nel formato /aws/cloudfront/function/ dove <FunctionName> è il nome assegnato alla funzione al momento della creazione. Il nome del flusso di log è nel formato <FunctionName>YYYY/M/D/.UUID
Di seguito viene illustrato un messaggio di log di esempio inviato a CloudWatch Logs. Ogni riga inizia con un ID che identifica in modo univoco una richiesta CloudFront. Il messaggio inizia con una riga START che include l'ID di distribuzione CloudFront e termina con una riga END. Tra le righe START e END vi sono le righe di log generate dalle istruzioni console.log() nella funzione.
U7b4hR_RaxMADupvKAvr8_m9gsGXvioUggLV5Oyq-vmAtH8HADpjhw== START DistributionID: E3E5D42GADAXZZ
U7b4hR_RaxMADupvKAvr8_m9gsGXvioUggLV5Oyq-vmAtH8HADpjhw== Example function log output
U7b4hR_RaxMADupvKAvr8_m9gsGXvioUggLV5Oyq-vmAtH8HADpjhw== END
Nota
Funzioni CloudFront invia parametri e registri a CloudWatch solo per le funzioni che si trovano nella fase LIVE che vengono eseguite in risposta alle richieste di produzione e alle risposte. Durante il test di una funzione, CloudFront non invia alcun registro a CloudWatch. L’output del test contiene informazioni su errori, utilizzo del calcolo e log delle funzioni (istruzioni console.log()), ma queste informazioni non vengono inviate a CloudWatch.
CloudFront Functions utilizza un ruolo collegato al servizio AWS Identity and Access Management (IAM) per inviare i log a CloudWatch Logs nel tuo account. Un ruolo collegato ai servizi è un tipo univoco di ruolo IAM collegato direttamente a un Servizio AWS. I ruoli collegati al servizio sono predefiniti dal servizio stesso e includono tutte le autorizzazioni richieste dal servizio per chiamare agli altri Servizi AWS. Funzioni CloudFront utilizza il ruolo collegato al servizio AWSServiceRoleForCloudFrontLogger. Per ulteriori informazioni su questo ruolo, consulta Ruoli collegati ai servizi per Lambda@Edge (Lambda@Edge utilizza lo stesso ruolo collegato al servizio).
Se una funzione non va a buon fine e restituisce un errore di convalida o un errore di esecuzione, le informazioni vengono registrate nei log standard e nei log in tempo reale. Per informazioni specifiche sull’errore, consulta i campi x-edge-result-type, x-edge-response-result-type e x-edge-detailed-result-type.