Registrazione e metriche perAWS Lambda - AWS Guida prescrittiva

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à.

Registrazione e metriche perAWS Lambda

Lambdaelimina la necessità di gestire e monitorare i server per i carichi di lavoro e funziona automaticamente con CloudWatchMetriche e CloudWatch Registra i log senza ulteriore configurazione o strumentazione del codice dell'applicazione. Questa sezione ti aiuta a comprendere le caratteristiche prestazionali dei sistemi utilizzati da Lambda e in che modo le tue scelte di configurazione influiscono sulle prestazioni. Inoltre, consente di registrare e monitorare le funzioni Lambda per l'ottimizzazione delle prestazioni e la diagnosi dei problemi a livello di applicazione.

Registrazione delle funzioni Lambda

Lambda trasmette automaticamente i messaggi di output standard e di errore standard da una funzione Lambda a CloudWatch Registra, senza richiedere la registrazione dei driver. Lambda effettua inoltre automaticamente il provisioning dei contenitori che eseguono la funzione Lambda e li configura per generare messaggi di log in flussi di log separati.

Le chiamate successive della funzione Lambda possono riutilizzare lo stesso contenitore e l'output nello stesso flusso di log. Lambda può anche fornire un nuovo contenitore e inviare la chiamata a un nuovo flusso di log.

Lambda crea automaticamente un gruppo di log quando la funzione Lambda viene richiamata per la prima volta. Le funzioni Lambda possono avere più versioni e puoi scegliere la versione che desideri eseguire. Tutti i log per le chiamate della funzione Lambda sono archiviati nello stesso gruppo di log. Il nome non può essere modificato e si trova in/aws/lambda/<YourLambdaFunctionName>formato. Nel gruppo di log viene creato un flusso di log separato per ogni istanza della funzione Lambda. Lambda ha una convenzione di denominazione standard per i flussi di log che utilizza unYYYY/MM/DD/[<FunctionVersion>]<InstanceId>formato. IlInstanceIdè generato daAWSper identificare l'istanza della funzione Lambda.

Ti consigliamo di formattare i messaggi di registro in formato JSON perché puoi interrogarli più facilmente con CloudWatch Logs Insights. Possono anche essere filtrati ed esportati più facilmente. È possibile utilizzare una libreria di registrazione per semplificare questo processo o scrivere funzioni personalizzate per la gestione dei log. Si consiglia di utilizzare una libreria di registrazione per facilitare la formattazione e la classificazione dei messaggi di registro. Ad esempio, se la tua funzione Lambda è scritta in Python, puoi usare ilModulo di registrazione Pythonper registrare i messaggi e controllare il formato di output. Lambda utilizza nativamente la libreria di registrazione Python per le funzioni Lambda scritte in Python e puoi recuperare e personalizzare il logger all'interno della tua funzione Lambda.AWS Labs ha creato ilAWSLambda Powertools per Pythontoolkit per sviluppatori che semplifica l'arricchimento dei messaggi di log con dati chiave come gli avviamenti a freddo. Il toolkit è disponibile per Python, Java, Typescript e.NET.

Un'altra procedura consigliata consiste nell'impostare il livello di output del registro utilizzando una variabile e regolarlo in base all'ambiente e ai requisiti. Il codice della funzione Lambda, oltre alle librerie utilizzate, potrebbe generare una grande quantità di dati di registro a seconda del livello di output del registro. Ciò può influire sui costi di registrazione e sulle prestazioni.

Lambda consente di impostare le variabili di ambiente per l'ambiente di runtime delle funzioni Lambda senza aggiornare il codice. Ad esempio, puoi creare unLAMBDA_LOG_LEVELvariabile di ambiente che definisce il livello di output del registro che è possibile recuperare dal codice. L'esempio seguente tenta di recuperare unLAMBDA_LOG_LEVELvariabile di ambiente e utilizza il valore per definire l'output di registrazione. Se la variabile di ambiente non è impostata, il valore predefinito èINFOlivello.

import logging from os import getenv logger = logging.getLogger() log_level = getenv("LAMBDA_LOG_LEVEL", "INFO") level = logging.getLevelName(log_level) logger.setLevel(level)

Invio di log ad altre destinazioni da CloudWatch

Puoi inviare log ad altre destinazioni (ad esempio, Amazon) OpenSearch Servizio o una funzione Lambda) utilizzando i filtri di abbonamento. Se non utilizzi Amazon OpenSearch Servizio, puoi utilizzare una funzione Lambda per elaborare i log e inviarli a unAWSservizio di tua scelta utilizzando ilAWSSDK.

Puoi anche utilizzare gli SDK per destinazioni di log al di fuori diAWSInserisci nel cloud la tua funzione Lambda per inviare direttamente le istruzioni di registro a una destinazione di tua scelta. Se scegli questa opzione, ti consigliamo di considerare l'impatto della latenza, il tempo di elaborazione aggiuntivo, la gestione degli errori e dei tentativi e l'abbinamento della logica operativa alla funzione Lambda.

Parametri della funzione Lambda

Lambda consente di eseguire il codice senza gestire o scalare i server e questo elimina quasi il peso delle verifiche e della diagnostica a livello di sistema. Tuttavia, è comunque importante comprendere le metriche delle prestazioni e delle chiamate a livello di sistema per le funzioni Lambda. Ciò consente di ottimizzare la configurazione delle risorse e migliorare le prestazioni del codice. Il monitoraggio e la misurazione efficaci delle prestazioni possono migliorare l'esperienza utente e ridurre i costi dimensionando adeguatamente le funzioni Lambda. In genere, i carichi di lavoro eseguiti come funzioni Lambda hanno anche metriche a livello di applicazione che devono essere acquisite e analizzate. Lambda supporta direttamente il formato metrico incorporato per rendere l'acquisizione a livello di applicazione CloudWatch metriche più semplici.

Metriche a livello di sistema

Lambda si integra automaticamente con CloudWatch Metrica e fornisce una serie dimetriche standard per le funzioni Lambda. Lambda fornisce anche una dashboard di monitoraggio separata per ogni funzione Lambda con queste metriche. Due metriche importanti da monitorare sono gli errori e gli errori di invocazione. Comprendere le differenze tra gli errori di invocazione e altri tipi di errore consente di diagnosticare e supportare le implementazioni Lambda.

Errori di invocazioneimpedisci l'esecuzione della funzione Lambda. Questi errori si verificano prima dell'esecuzione del codice, quindi non è possibile implementare la gestione degli errori all'interno del codice per identificarli. Dovresti invece configurare allarmi per le funzioni Lambda che rilevano questi errori e avvisino i proprietari delle operazioni e dei carichi di lavoro. Questi errori sono spesso correlati a un errore di configurazione o di autorizzazione e possono verificarsi a causa di una modifica della configurazione o delle autorizzazioni. Gli errori di invocazione possono avviare un nuovo tentativo, che causa più chiamate della funzione.

Una funzione Lambda richiamata correttamente restituisce una risposta HTTP 200 anche se la funzione genera un'eccezione. Le funzioni Lambda devono implementare la gestione degli errori e generare eccezioni in modo cheErrorsla metrica acquisisce e identifica le esecuzioni non riuscite della funzione Lambda. È necessario restituire una risposta formattata dalle chiamate alla funzione Lambda che includa informazioni per determinare se l'esecuzione è fallita completamente, parzialmente o ha avuto successo.

CloudWatch fornisceCloudWatch Lambda Insightsche puoi abilitare per una singola funzione Lambda. Lambda Insights raccoglie, aggrega e riepiloga le metriche a livello di sistema (ad esempio, tempo della CPU, memoria, utilizzo del disco e della rete). Lambda Insights raccoglie, aggrega e riepiloga anche le informazioni diagnostiche (ad esempio, partenze a freddo e arresti dei lavoratori Lambda) per aiutarti a isolare e risolvere rapidamente i problemi.

Lambda Insights utilizza il formato metrico incorporato per inviare automaticamente informazioni sulle prestazioni a/aws/lambda-insights/gruppo di log con un prefisso del nome del flusso di log basato sul nome della funzione Lambda. Questi eventi di registro delle prestazioni creano CloudWatch metriche che sono alla base dell'automazione CloudWatch dashboard. Ti consigliamo di abilitare Lambda Insights per i test delle prestazioni e gli ambienti di produzione. Le metriche aggiuntive create da Lambda Insights includonomemory_utilizationciò aiuta a dimensionare correttamente le funzioni Lambda in modo da evitare di pagare per capacità non richiesta.

Parametri di applicazione

Puoi anche creare e acquisire le metriche delle tue applicazioni in CloudWatch utilizzando il formato metrico incorporato. Puoi sfruttareAWS ha fornito librerie per il formato metrico incorporatoper creare ed emettere istruzioni in formato metrico incorporato per CloudWatch. La Lambda integrata CloudWatch la struttura di registrazione è configurata per elaborare ed estrarre istruzioni in formato metrico incorporato formattate in modo appropriato.