View a markdown version of this page

Registri delle funzioni Web in Amazon CloudWatch Logs - AWS Lambda

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Registri delle funzioni Web in Amazon CloudWatch Logs

AWS Lambda acquisisce tutto ciò che l'applicazione scrive sullo standard output e sull'errore standard e lo invia ad Amazon CloudWatch Logs, insieme ai log di sistema generati da Lambda stessa. InNode.js, l'output di ogni console metodo, ad esempio, e console.log console.infoconsole.error, viene acquisito automaticamente e filtrato in base all'impostazione. applicationLogLevel Vengono inoltre acquisite le librerie di registrazione che scrivono sullo standard output o sullo standard error. Non è necessario un agente di registrazione o l'SDK Amazon CloudWatch Logs.

Lambda scrive l'consoleoutput come eventi di registro JSON e aggiunge i region campi requestIdendpointName, e a ciascun evento. Per un esempio, consulta Scrittura di log strutturati.

Lambda raccoglie i log in ogni area in Regione AWS cui viene eseguita la funzione Web e quindi li centralizza nella regione principale della funzione. Un HomeRegion endpoint funziona solo nella regione d'origine. Un PerRegion endpoint MultiRegion o viene eseguito anche nelle altre regioni specificate, quindi Lambda centralizza i log di ciascuna di tali regioni. Per ulteriori informazioni, consulta Tipi di endpoint.

Gruppi di log

Per impostazione predefinita, Lambda invia i log della funzione Web a un gruppo di log denominato con lo stesso nome della funzione:

/aws/lambda/web/function-name

Oltre al gruppo di log centralizzato, Lambda utilizza un gruppo di log complementare per conservare i log locali prima che vengano centralizzati. Il nome del complemento è il nome del gruppo di log centralizzato seguito da.local, sia per il gruppo di log predefinito che per un gruppo di log personalizzato. Per il gruppo di log predefinito, il complemento è:

/aws/lambda/web/function-name.local

Lambda scrive i log nel gruppo di .local log in ogni regione in cui vengono eseguite le richieste, inclusa la regione di origine, e quindi li centralizza nel gruppo di log senza il suffisso nella regione principale. Ogni gruppo di .local log contiene solo i log della propria regione. Lambda non rimuove gli eventi dal gruppo di .local log dopo la centralizzazione. L'impostazione di conservazione del gruppo di log determina per quanto tempo rimangono.

I gruppi di log non esistono finché la funzione Web non soddisfa la prima richiesta. Il gruppo di log centralizzato nella regione di origine potrebbe apparire dopo il gruppo di .local log. Per i tempi di centralizzazione, vedere. Latenza di centralizzazione

Lambda crea il gruppo di log predefinito e ogni .local gruppo di log con le impostazioni predefinite di Amazon CloudWatch Logs, in modo che i relativi eventi non scadano mai a meno che non si imposti una politica di conservazione. Puoi modificarne la politica di conservazione, crittografia e risorse dopo che Lambda li ha creati. Impostali nel gruppo di .local log in ogni regione in cui viene eseguito l'endpoint e nel gruppo di log centralizzato nella regione principale.

Poiché il gruppo di .local log non attende la centralizzazione, è utile per il debug di un problema in una regione specifica. Il gruppo di log centralizzato contiene i log di ogni regione, quindi crea query condivise, filtri di sottoscrizione, filtri metrici e automazione che coprano l'intera applicazione sul gruppo di log centralizzato. Per sapere come si comporta la telemetria in ogni regione, vedi. Telemetria in ogni regione

Utilizzo di un gruppo di log personalizzato

Puoi inviare i log della tua funzione Web a un gruppo di log a tua scelta anziché a quello predefinito. Utilizzate un gruppo di log personalizzato se desiderate impostare politiche di conservazione, crittografia o risorse prima dell'arrivo del primo evento di registro. Un gruppo di log personalizzato consente inoltre di raggruppare i log di diverse funzioni. Per applicare queste impostazioni fin dall'inizio, crea tu stesso il gruppo di log e il relativo .local complemento prima di indirizzare il traffico verso la revisione. Se uno dei due gruppi di log non esiste, Lambda lo crea al primo utilizzo con le impostazioni predefinite e puoi aggiornarne le impostazioni in seguito. Lambda può creare un gruppo di log solo se il ruolo di esecuzione è autorizzato a creare gruppi di log. Per le autorizzazioni richieste, consulta Ruolo di esecuzione.

Per inviare i log a un gruppo di log personalizzato (AWS CLI)
  1. Nella regione di origine, crea il gruppo di log e il relativo .local gruppo e imposta la conservazione che desideri per ciascuno di essi. Per un PerRegion endpoint MultiRegion o, crea anche il gruppo di .local log in ogni altra regione servita dall'endpoint, eseguendo i .local comandi con --region set to quell'area.

    aws logs create-log-group --log-group-name /my-app/web-logs aws logs create-log-group --log-group-name /my-app/web-logs.local aws logs put-retention-policy \ --log-group-name /my-app/web-logs \ --retention-in-days 30 aws logs put-retention-policy \ --log-group-name /my-app/web-logs.local \ --retention-in-days 30
  2. Crea una revisione che specifichi il gruppo di log nella sezione di. telemetryConfig serviceConfig

    aws lambda-web create-web-function-revision \ --function-name my-web-app \ --build-config '{ "codeConfig": { "s3Object": { "bucket": "my-bucket", "key": "my-app.zip" } }, "runtimeConfig": { "runtime": "nodejs24.x" } }' \ --service-config '{ "executionRoleArn": "arn:aws:iam::111122223333:role/my-web-function-role", "telemetryConfig": { "loggingConfig": { "logGroup": "/my-app/web-logs" } } }'
  3. Indirizza il traffico verso la nuova revisione. Per ulteriori informazioni, consulta Modelli di implementazione.

Poiché la configurazione della registrazione fa parte della revisione, è immutabile per quella revisione. Per modificare il gruppo di log in un secondo momento, crea un'altra revisione. Per ulteriori informazioni, consulta Gestione delle revisioni delle funzioni Web.

Controlli di registrazione

La loggingConfig sezione controlla la destinazione e la gravità minima dei log. Queste impostazioni fanno parte della revisione.

Impostazione Valori Predefinita Description
logGroup Nome del gruppo di log /aws/lambda/web/function-name Il gruppo di CloudWatch log di Amazon Logs che riceve i tuoi log.
applicationLogLevel TRACE | DEBUG | INFO | WARN | ERROR | FATAL INFO La gravità minima dei log dell'applicazione che Lambda invia ad Amazon CloudWatch Logs. I log al di sotto di questo livello vengono eliminati. Node.jsnon ha un metodo da FATAL console, quindi un livello di FATAL si comporta come. ERROR
systemLogLevel DEBUG | INFO | WARN INFO La gravità minima dei log di Lambda-generated sistema che Lambda invia ad Amazon CloudWatch Logs. Per il livello di ogni evento di sistema, consulta. Registri di sistema

L'esempio seguente crea una revisione che elimina i seguenti log delle applicazioni: WARN

aws lambda-web create-web-function-revision \ --function-name my-web-app \ --build-config '{ "codeConfig": { "s3Object": { "bucket": "my-bucket", "key": "my-app.zip" } }, "runtimeConfig": { "runtime": "nodejs24.x" } }' \ --service-config '{ "executionRoleArn": "arn:aws:iam::111122223333:role/my-web-function-role", "telemetryConfig": { "loggingConfig": { "applicationLogLevel": "WARN", "systemLogLevel": "INFO" } } }'

L'applicationLogLevelaumento della produzione riduce sia il volume che i costi dei registri. Riducilo temporaneamente a un problema DEBUG o TRACE quando stai esaminando un problema.

Registri di sistema

Oltre all'output dell'applicazione, il gruppo di log riceve i log di sistema generati da Lambda sul ciclo di vita dell'ambiente di esecuzione, come l'inizializzazione e lo spegnimento dell'ambiente. systemLogLevelUsalo per controllare la quantità di questa Lambda emessa.

I log di sistema sono utili per correlare il comportamento dell'applicazione con gli eventi della piattaforma. Ad esempio, un picco di latenza che si allinea a un ingresso di inizializzazione dell'ambiente indica un avvio a freddo anziché al codice dell'applicazione. Per il ciclo di vita descritto da questi log, vedi. Ciclo di vita dell'ambiente di esecuzione

Le funzioni Web emettono i seguenti eventi di sistema. Imposta systemLogLevel il livello più basso di cui hai bisogno. Ad esempio, impostalo per DEBUG ricevere o ricevere platform.requestComplete solo avvisi WARN relativi agli errori e ai registri eliminati.

Tipo di evento Livello Note
platform.initStart INFO Nessuno
platform.initReport INFOin caso di successo, in caso di fallimento WARN Un errore indica un errore di inizializzazione, ad esempio un errore durante l'importazione del codice.
platform.invokeStart INFO Nessuno
platform.requestComplete DEBUG Emesso una volta per ogni richiesta HTTP, incluse le richieste non riuscite. Poiché è ad alto volume, non viene emesso al livello di registro di sistema predefinito.
platform.invokeSummary INFO Periodico. Emesso circa ogni 60 secondi per ogni ambiente di esecuzione attivo.
platform.invokeReport INFOsul successo, WARN sul fallimento
platform.spinDownStart INFO
platform.spinDownReport INFOsul successo, WARN sul fallimento Un errore indica che l'applicazione non è stata chiusa entro 1 secondo dalla ricezione SIGTERM (Runtime.SpinDownTimeout) o è uscita con un errore (Runtime.ExitError).
platform.logsDropped WARN Indica che Lambda ha eliminato gli eventi di registro.

Per i campi di ogni evento di sistema, vediSchema degli eventi del registro di sistema per Lambda Web Functions.

L'intestazione di lambda-web-request-id risposta identifica la richiesta e l'intestazione di lambda-web-logstream risposta identifica il flusso di log per l'ambiente che l'ha gestita. Utilizzate questi valori per correlare la risposta di un client con i log dell'applicazione e del sistema. Per ulteriori informazioni, consulta Intestazioni di risposta.

Per trovare gli eventi del flusso di log identificato nel gruppo di log centralizzato nella regione di origine, filtra in base al nome dello stream come prefisso. Puoi anche leggere lo stream in base al nome esatto del gruppo di .local log della regione che ha fornito la richiesta.

aws logs filter-log-events \ --log-group-name /aws/lambda/web/my-web-app \ --log-stream-name-prefix "LAMBDA_WEB_LOGSTREAM" \ --region us-east-1

Per seguire i log recenti durante la riproduzione di un problema, usa:

aws logs tail /aws/lambda/web/my-web-app \ --follow \ --region us-east-1

Scrittura di log strutturati

Passa un oggetto a un console metodo in modo che Lambda lo scriva come oggetto JSON nel campo. message Puoi quindi interrogare singoli campi in Amazon CloudWatch Logs Insights anziché corrisponderli nelle sottostringhe. Non passare una stringa con cui hai creato. JSON.stringify Lambda scrive una stringa come valore di stringa con escape, quindi i suoi campi non possono essere interrogati.

function logRequest(req, statusCode, durationMs) { console.info({ method: req.method, path: req.url, statusCode: statusCode, durationMs: durationMs }); }

Lambda scrive un evento di registro simile al seguente:

{ "timestamp": "2026-09-25T11:29:02.711Z", "level": "INFO", "message": { "method": "GET", "path": "/hello-world", "statusCode": 200, "durationMs": 100 }, "requestId": "US3NHLM77IRXDFLBADYHGIZZNM", "endpointName": "prod", "region": "us-east-1" }

È quindi possibile interrogare direttamente i campi. Ad esempio, la seguente query di Amazon CloudWatch Logs Insights restituisce le 20 richieste più recenti che hanno restituito lo stato 5xx:

fields @timestamp, message.method, message.path, message.statusCode, message.durationMs | filter message.statusCode >= 500 | sort @timestamp desc | limit 20

Per pubblicare parametri personalizzati dai tuoi log anziché limitarti a interrogarli, utilizza il formato metrico incorporato. Per ulteriori informazioni, consulta Pubblicazione di metriche personalizzate con il formato metrico incorporato.

Utilizzo delle funzionalità di Amazon CloudWatch Logs con i tuoi log

Poiché i log sono centralizzati nella regione di origine, puoi utilizzare le funzionalità standard di Amazon CloudWatch Logs in quella regione, tra cui:

  • Live Tail: trasmetti in streaming gli eventi di registro non appena arrivano mentre riproduci un problema. Gli eventi raggiungono il gruppo di log centralizzato dopo la centralizzazione, quindi per il minor tempo possibile, esegui Live Tail sul gruppo di .local log della regione che serve le tue richieste.

  • Logs Insights: interroga i campi nei tuoi eventi di registro JSON.

  • Centralizzazione dei log: inoltra i log a un altro account o destinazione utilizzando le funzionalità di centralizzazione di Amazon CloudWatch Logs, se aggregi i log al di fuori dell'account della funzione.

  • Filtri di abbonamento e filtri metrici: attiva l'elaborazione a valle o ricava le metriche dai modelli di log.

Applica le funzionalità che devono coprire l'intera applicazione al gruppo di log centralizzato nella regione di origine. Un gruppo di .local log contiene solo i log della propria regione. Per ulteriori informazioni, consulta Telemetria in ogni regione.