Registri delle funzioni Edge - Amazon CloudFront

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/<FunctionName>, dove <FunctionName> è il nome specificato al momento della creazione della funzione. Quando si inviano i log a CloudWatch, Lambda@Edge aggiunge automaticamente il prefisso us-east-1 al nome della funzione, in modo che il nome del gruppo di log sia /aws/lambda/us-east-1.<FunctionName>. 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.

  • Se si specifica un nome di gruppo di log personalizzato, come /MyLogGroup, 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.

Nota

Se si crea un gruppo di log personalizzato e si specifica lo stesso nome di quello predefinito /aws/lambda/<FunctionName>, Lambda@Edge aggiunge il prefisso 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:

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/<FunctionName> dove <FunctionName> è il nome assegnato alla funzione al momento della creazione. Il nome del flusso di log è nel formato 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.