View a markdown version of this page

Log-level filtraggio - 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à.

Log-level filtraggio

Lambda può filtrare i log della tua Event Function in modo che solo i log di un certo livello di dettaglio o inferiore vengano inviati ai log. CloudWatch Puoi configurare il filtro a livello di registro separatamente per i log di sistema di Event Function (i log generati da Lambda) e i log delle applicazioni (i log generati dal codice Event Function).

InfattiRuntime e metodi di registrazione supportati, non è necessario apportare modifiche al codice Event Function per Lambda per filtrare i log delle applicazioni di Event Function.

Per tutti gli altri runtime e metodi di registrazione, il codice Event Function deve generare gli eventi di registro in stdout o stderr come oggetti in formato JSON che contengono una coppia di valori chiave con la chiave. "level" Ad esempio, Lambda interpreta il seguente output su stdout come un log di livello DEBUG.

print('{"level": "debug", "msg": "my debug log", "timestamp": "2024-11-02T16:51:31.587199Z"}')

Se il campo del "level" valore non è valido o manca, Lambda assegna all'output del registro il livello INFO. Affinché Lambda utilizzi il campo timestamp, è necessario specificare l'ora in un formato timestamp RFC 3339 valido. Se non fornisci un timestamp valido, Lambda assegna al log il livello INFO e aggiunge un timestamp per te.

Quando assegni un nome alla chiave timestamp, segui le convenzioni del runtime che stai utilizzando. Lambda supporta le convenzioni di denominazione più comuni utilizzate dai runtime gestiti.

Nota

Per utilizzare il filtraggio a livello di log, la tua Event Function deve essere configurata per utilizzare il formato di registro JSON. Attualmente, il formato di log predefinito per tutti i runtime gestiti da Lambda è il testo normale. Per informazioni su come configurare il formato di registro della funzione evento in JSON, consulta. Impostazione del formato di registro della funzione eventi

Per i log delle applicazioni (i log generati dal codice della funzione), puoi scegliere tra i seguenti livelli di log.

Livello di log Utilizzo standard
TRACE (dettaglio massimo) Le informazioni più dettagliate utilizzate per tracciare il percorso di esecuzione del codice
DEBUG Informazioni dettagliate per il debug del sistema
INFO Messaggi che registrano il normale funzionamento della funzione
WARN Messaggi relativi a potenziali errori che potrebbero portare a comportamenti imprevisti se non risolti
ERRORE Messaggi relativi a problemi che impediscono al codice di funzionare come previsto
FATAL (dettaglio minimo) Messaggi relativi a errori gravi che causano l'interruzione del funzionamento dell'applicazione

Quando si seleziona un livello di registro, Lambda invia i log a quel livello e successivamente a Logs. CloudWatch Ad esempio, se imposti il livello di registro dell'applicazione di una Event Function su WARN, Lambda non invia output di log ai livelli INFO e DEBUG. Il livello di log dell'applicazione predefinito per il filtraggio dei log è INFO.

Quando Lambda filtra i log delle applicazioni di Event Function, ai messaggi di registro senza livello viene assegnato il livello di registro INFO.

Per i log di sistema (i log generati dal servizio Lambda), puoi scegliere tra i seguenti livelli di log.

Livello di log Utilizzo
DEBUG (dettaglio massimo) Informazioni dettagliate per il debug del sistema
INFO Messaggi che registrano il normale funzionamento della funzione
WARN (dettaglio minimo) Messaggi relativi a potenziali errori che potrebbero portare a comportamenti imprevisti se non risolti

Quando si seleziona un livello di log, Lambda invia i log di quel livello e di livello inferiore. Ad esempio, se imposti il livello di registro di sistema di una Event Function su INFO, Lambda non invia output di log a livello DEBUG.

Per impostazione predefinita, Lambda imposta il livello di log del sistema su INFO. Con questa impostazione, Lambda invia "start" e "report" registra automaticamente i messaggi a. CloudWatch Per ricevere log di sistema più o meno dettagliati, modifica il livello di log in DEBUG o WARN. Per visualizzare un elenco dei livelli di log a cui Lambda mappa i diversi log eventi di sistema, consulta la pagina Strumento di mappatura degli eventi a livello di log di sistema.

Configurazione del filtraggio a livello di log

Per configurare il filtraggio a livello di registro dell'applicazione e del sistema per la tua Event Function, puoi utilizzare la console Lambda o il (). AWS Command Line Interface AWS CLI Puoi anche configurare il livello di registro di una funzione evento utilizzando i comandi CreateFunctione UpdateFunctionConfigurationLambda API, la risorsa AWS Serverless Application Model (AWS SAM) AWS::Serverless: :Function e la risorsa CloudFormation AWS::Lambda: :Function.

Nota che se imposti il livello di registro della tua Event Function nel codice, questa impostazione ha la precedenza su qualsiasi altra impostazione a livello di registro che configuri. Ad esempio, se si utilizza il logging setLevel() metodo Python per impostare il livello di registrazione della funzione evento su INFO, questa impostazione ha la precedenza su un'impostazione di WARN configurata utilizzando la console Lambda.

Per configurare l'applicazione o il livello di registro di sistema (console) di Event Function esistente
  1. Apri la pagina Event Functions della console Lambda.

  2. Scegli una funzione di evento.

  3. Nella pagina di configurazione della funzione evento, scegli Strumenti di monitoraggio e operazioni.

  4. Nel riquadro Configurazione della registrazione, scegli Modifica.

  5. In Contenuto del log, per Formato del log assicurati che sia selezionato JSON.

  6. Utilizzando i pulsanti di opzione, selezionate il livello di registro dell'applicazione e il livello di registro del sistema desiderati per la funzione evento.

  7. Selezionare Salva.

Per configurare l'applicazione o il livello di registro di sistema di una funzione esistente (AWS CLI)
  • Per modificare il livello di log dell'applicazione o del sistema di una funzione esistente, utilizza il comando update-function-configuration. Utilizza --logging-config per impostare SystemLogLevel su DEBUG, INFO o WARN. Imposta ApplicationLogLevel su DEBUG, INFO, WARN, ERROR o FATAL.

    aws lambda update-function-configuration \ --function-name myFunction \ --logging-config LogFormat=JSON,ApplicationLogLevel=ERROR,SystemLogLevel=WARN
Configurazione del filtraggio a livello di log durante la creazione di una funzione
  • Per configurare il filtraggio a livello di log quando crei una nuova funzione, utilizza --logging-config per impostare le chiavi SystemLogLevel e ApplicationLogLevel nel comando create-function. Imposta SystemLogLevel su DEBUG, INFO o WARN. Imposta ApplicationLogLevel su DEBUG, INFO, WARN, ERROR o FATAL.

    aws lambda create-function \ --function-name myFunction \ --runtime nodejs24.x \ --handler index.handler \ --zip-file fileb://function.zip \ --role arn:aws:iam::123456789012:role/LambdaRole \ --logging-config LogFormat=JSON,ApplicationLogLevel=ERROR,SystemLogLevel=WARN

Strumento di mappatura degli eventi a livello di log di sistema

Per gli eventi di log a livello di sistema generati da Lambda, la tabella seguente definisce il livello di log assegnato a ciascun evento. Per ulteriori informazioni sugli eventi elencati nella tabella, consulta la pagina Riferimento allo schema degli eventi dell'API di telemetria Lambda

Nome evento Condizione Livello di log assegnato
initStart runtimeVersion è impostato INFO
initStart runtimeVersion non è impostato DEBUG
inizializzazione RuntimeDone status=success DEBUG
iniziare RuntimeDone status=success WARN
initReport initializationType!=on-demand INFO
initReport initializationType=on-demand DEBUG
initReport status=success WARN
restoreStart runtimeVersion è impostato INFO
restoreStart runtimeVersion non è impostato DEBUG
ripristinare RuntimeDone status=success DEBUG
ripristinare RuntimeDone status=success WARN
restoreReport status=success INFO
restoreReport status=success WARN
rapida - INFO
runtimeDone status=success DEBUG
runtimeDone status=success WARN
report status=success INFO
report status=success WARN
Estensione state=success INFO
Estensione state!=success WARN
logSubscription - INFO
telemetrySubscription - INFO
logsDropped - WARN
Nota

L'Accesso ai dati di telemetria in tempo reale per le estensioni tramite l'API Telemetry emette sempre il set completo di eventi della piattaforma. La configurazione del livello dei log di sistema a cui Lambda invia CloudWatch non influisce sul comportamento dell'API Lambda Telemetry.

Filtraggio delle applicazioni a livello di log con runtime personalizzati

Quando configuri il filtro a livello di registro dell'applicazione per la tua Event Function, dietro le quinte Lambda imposta il livello di registro dell'applicazione in fase di esecuzione utilizzando la variabile di ambiente. AWS_LAMBDA_LOG_LEVEL Lambda imposta anche il formato di registro della funzione evento utilizzando la variabile di AWS_LAMBDA_LOG_FORMAT ambiente. Puoi utilizzare queste variabili per integrare i controlli di registrazione avanzati di Lambda in un runtime personalizzato.

Per poter configurare le impostazioni di registrazione per una funzione evento utilizzando un runtime personalizzato con la console Lambda e le API Lambda AWS CLI, configura il runtime personalizzato per controllare il valore di queste variabili di ambiente. È quindi possibile configurare i logger del runtime in base al formato di log e ai livelli di log selezionati.