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à.
Configurazione dei gruppi di CloudWatch log
Per impostazione predefinita, crea CloudWatch automaticamente un gruppo di log denominato /aws/lambda/<function name> per la funzione quando viene richiamata per la prima volta. Per configurare la tua funzione per l'invio dei log a un gruppo di log esistente o per creare un nuovo gruppo di log per la funzione, puoi utilizzare la console Lambda o la AWS CLI. Puoi anche configurare gruppi di log personalizzati utilizzando i comandi API CreateFunction e UpdateFunctionConfiguration Lambda e la risorsa AWS Serverless Application Model (AWS SAM) AWS: :Serverless: :Function.
È possibile configurare più funzioni Lambda per inviare i log allo stesso gruppo di log. CloudWatch Ad esempio, è possibile utilizzare un singolo gruppo di log per archiviare i log per tutte le funzioni Lambda che costituiscono una particolare applicazione. Quando si utilizza un gruppo di log personalizzato per una funzione Lambda, i flussi di log creati da Lambda includono il nome e la versione della funzione. Ciò garantisce che la mappatura tra i messaggi di log e le funzioni venga preservata, anche se si utilizza lo stesso gruppo di log per più funzioni.
Il formato di denominazione per i flussi di log per i gruppi di log personalizzati segue questa convenzione:
YYYY/MM/DD/<function_name>[<function_version>][<execution_environment_GUID>]Tieni presente che quando configuri un gruppo di log personalizzato, il nome selezionato per il tuo gruppo di log deve seguire le regole di denominazione dei CloudWatch log. Inoltre, i nomi dei gruppi di log personalizzati non devono cominciare con la stringa aws/. Se crei un gruppo di log personalizzato che comincia con aws/, Lambda non sarà in grado di crearlo. Di conseguenza, i log della tua funzione non verranno inviati a. CloudWatch
Modifica del gruppo di log di una funzione (console)
-
Aprire la pagina Funzioni
della console Lambda. -
Scegliere una funzione.
-
Nella pagina di configurazione della funzione, scegli Strumenti di monitoraggio e gestione.
-
Nel riquadro Configurazione della registrazione, scegli Modifica.
-
Nel riquadro del gruppo di registrazione, per il gruppo di CloudWatch log, scegli Personalizzato.
-
In Gruppo di log personalizzato, inserisci il nome del gruppo di CloudWatch log a cui desideri che la funzione invii i log. Se immetti il nome di un gruppo di log esistente, la funzione utilizzerà quel gruppo. Se non esiste alcun gruppo di log con il nome immesso, Lambda creerà un nuovo gruppo di log per la funzione con tale nome.
Per modificare il gruppo di log di una funzione (AWS CLI)
-
Per modificare il gruppo di log di una funzione esistente, utilizza il comando update-function-configuration
. aws lambda update-function-configuration \ --function-name myFunction \ --logging-config LogGroup=myLogGroup
Per specificare un gruppo di log personalizzato quando si crea una funzione (AWS CLI)
-
Per specificare un gruppo di log personalizzato quando crei una nuova funzione Lambda utilizzando AWS CLI, usa l'
--logging-configopzione. Il seguente comando di esempio crea una funzione Node.js Lambda che invia i log a un gruppo di log denominato.myLogGroupaws 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 LogGroup=myLogGroup
Autorizzazioni del ruolo di esecuzione
Affinché la funzione possa inviare i CloudWatch log a Logs, deve disporre dell'PutLogEventsautorizzazione logs:. Quando configuri il gruppo di log della tua funzione utilizzando la console Lambda, Lambda aggiunge questa autorizzazione al ruolo nelle seguenti condizioni:
-
La destinazione del servizio è impostata su Logs CloudWatch
-
Il ruolo di esecuzione della tua funzione non dispone delle autorizzazioni per caricare i log su CloudWatch Logs (la destinazione predefinita)
Nota
Lambda non aggiunge alcuna autorizzazione Put per le destinazioni di log di Amazon S3 o Firehose.
Quando Lambda aggiunge questa autorizzazione, concede alla funzione il permesso di inviare log a qualsiasi CloudWatch gruppo di log Logs.
Per evitare che Lambda aggiorni automaticamente il ruolo di esecuzione della funzione e modificarlo invece manualmente, espandi Autorizzazioni e deseleziona Aggiungi autorizzazioni richieste.
Quando configuri il gruppo di log della tua funzione utilizzando il AWS CLI, Lambda non aggiungerà automaticamente l'logs:PutLogEventsautorizzazione. Aggiungi l'autorizzazione al ruolo di esecuzione della tua funzione, se non ne dispone già. Questa autorizzazione è inclusa nella policy AWSLambdaBasicExecutionRole
CloudWatch registrazione per Lambda Managed Instances
Quando si utilizzano le istanze gestite Lambda, ci sono ulteriori considerazioni per l'invio dei log ai log: CloudWatch
Requisiti di rete VPC
Le istanze gestite Lambda vengono eseguite su istanze EC2 di proprietà del cliente all'interno del tuo VPC. Per inviare i CloudWatch log a Logs e le tracce a X-Ray, devi assicurarti che queste AWS API siano instradabili dal tuo VPC. A questo scopo, sono disponibili numerose opzioni:
-
AWS PrivateLink (consigliato): AWS PrivateLink da utilizzare per creare endpoint VPC per log e servizi. CloudWatch X-Ray Ciò consente alle istanze di accedere a questi servizi privatamente senza richiedere un gateway Internet o un gateway NAT. Per ulteriori informazioni, consulta Utilizzo dei CloudWatch log con gli endpoint VPC dell'interfaccia.
-
Gateway NAT: configura un gateway NAT per consentire l'accesso a Internet in uscita dalle tue sottoreti private.
-
Gateway Internet: per le sottoreti pubbliche, assicurati che sul tuo VPC sia configurato un gateway Internet.
Se CloudWatch i log o le X-Ray API non sono instradabili dal tuo VPC, i log e le tracce delle funzioni non vengono consegnati.
Richiami simultanei e attribuzione dei log
Gli ambienti di esecuzione di Lambda Managed Instances possono elaborare più invocazioni contemporaneamente. Quando più invocazioni vengono eseguite contemporaneamente, le relative voci di registro vengono interlacciate nello stesso flusso di log. Per filtrare e analizzare in modo efficace i log provenienti da chiamate simultanee, è necessario assicurarsi che ogni voce di registro includa l'ID della richiesta. AWS
Consigliamo uno dei seguenti approcci:
-
Usa i logger di runtime Lambda predefiniti (consigliato): le librerie di registrazione predefinite fornite dai runtime gestiti da Lambda includono automaticamente l'ID della richiesta in ogni voce di registro.
-
Implementa la registrazione JSON strutturata: se stai creando un runtime personalizzato o hai bisogno di una registrazione personalizzata, implementa i JSON-formatted log che includono l'ID della richiesta in ogni voce. Le istanze gestite Lambda supportano solo il formato di log JSON. Includi il
requestIdcampo nei tuoi log JSON per abilitare il filtraggio per invocazione:{ "timestamp": "2025-01-15T10:30:00.000Z", "level": "INFO", "requestId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "message": "Processing request" }
Con l'attribuzione dell'ID della richiesta, puoi filtrare le voci di CloudWatch log di Logs per una chiamata specifica utilizzando le query Logs Insights. CloudWatch Ad esempio:
fields @timestamp, @message | filter requestId = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" | sort @timestamp asc
Per ulteriori informazioni sui requisiti di registrazione di Lambda Managed Instances, consulta. Comprendere l'ambiente di esecuzione delle istanze gestite Lambda