View a markdown version of this page

Configurazione dei gruppi di CloudWatch log - 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à.

Configurazione dei gruppi di CloudWatch log

Per impostazione predefinita, crea CloudWatch automaticamente un gruppo di log denominato /aws/lambda/<function name> per la tua funzione di eventi Lambda quando viene richiamata per la prima volta. Per configurare la tua Event Function per inviare i log a un gruppo di log esistente o per creare un nuovo gruppo di log per la tua Event Function, puoi utilizzare la console Lambda o il. AWS CLI Puoi anche configurare gruppi di log personalizzati utilizzando i comandi API CreateFunctione UpdateFunctionConfigurationLambda e la risorsa AWS Serverless Application Model (AWS SAM) AWS: :Serverless: :Function.

È possibile configurare più funzioni di eventi Lambda per inviare i log allo stesso CloudWatch gruppo di log. Ad esempio, è possibile utilizzare un singolo gruppo di log per archiviare i log di tutte le funzioni di evento Lambda che costituiscono una particolare applicazione. Quando si utilizza un gruppo di log personalizzato per una funzione evento Lambda, i flussi di registro creati da Lambda includono il nome della funzione evento e la versione della funzione evento. Ciò garantisce che la mappatura tra i messaggi di registro e le funzioni degli eventi venga preservata, anche se si utilizza lo stesso gruppo di log per più funzioni di eventi.

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>]

Si noti che quando si configura un gruppo di log personalizzato, il nome selezionato per il 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 registri della funzione eventi non verranno inviati a. CloudWatch

Modifica del gruppo di log di una funzione (console)
  1. Apri la pagina Event Functions della console Lambda.

  2. Scegliete 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. Nel riquadro Logging group, per il gruppo di CloudWatch log, scegli Personalizzato.

  6. 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 di evento (AWS CLI)
  • Per modificare il gruppo di log di una funzione di evento esistente, utilizzate 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 di evento (AWS CLI)
  • Per specificare un gruppo di log personalizzato quando si crea una nuova funzione di eventi Lambda utilizzando AWS CLI, utilizzare l'--logging-configopzione. Il comando di esempio seguente crea una funzione evento Node.js Lambda che invia i log a un gruppo di log denominato. myLogGroup

    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 LogGroup=myLogGroup

Autorizzazioni del ruolo di esecuzione

Affinché Event Function invii i log a CloudWatch Logs, deve disporre dell'autorizzazione logs:. PutLogEvents Quando configuri il gruppo di log della tua Event Function 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 funzione evento non dispone delle autorizzazioni per caricare i registri nei CloudWatch registri (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 Event Function l'autorizzazione a inviare i log a qualsiasi gruppo di log CloudWatch Logs.

Per evitare che Lambda aggiorni automaticamente il ruolo di esecuzione della Event Function e lo modifichi invece manualmente, espandi Autorizzazioni e deseleziona Aggiungi autorizzazioni richieste.

Quando configuri il gruppo di log della tua Event Function utilizzando AWS CLI, Lambda non aggiungerà automaticamente l'logs:PutLogEventsautorizzazione. Aggiungi l'autorizzazione al ruolo di esecuzione della tua Event Function se non l'ha già. Questa autorizzazione è inclusa nella politica AWSLambdaBasicExecutionRolegestita.

CloudWatch registrazione per istanze gestite Lambda

Quando si utilizzano le istanze gestite da 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 log a CloudWatch Logs and trace to X-Ray, devi assicurarti che queste AWS API siano instradabili dal tuo VPC. A questo scopo, sono disponibili numerose opzioni:

  • AWS PrivateLink (consigliato): AWS PrivateLinkda utilizzare per creare endpoint VPC per CloudWatch registri e servizi. X-Ray Ciò consente alle istanze di accedere a questi servizi in modo privato 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 sottoreti private.

  • Gateway Internet: per le sottoreti pubbliche, assicurati che il tuo VPC abbia un gateway Internet configurato.

Se CloudWatch i log o le X-Ray API non sono instradabili dal tuo VPC, i log e le tracce delle funzioni degli eventi non vengono consegnati.

Richiamazioni simultanee e attribuzione dei log

Gli ambienti di esecuzione di Lambda Managed Instances possono elaborare più chiamate contemporaneamente. Quando vengono eseguite più chiamate contemporaneamente, le relative voci di registro vengono interlacciate nello stesso flusso di log. Per filtrare e analizzare efficacemente i log delle 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 JSON-formatted i log che includono l'ID della richiesta in ogni voce. Le istanze gestite Lambda supportano solo il formato di log JSON. Includi il requestId campo nei log JSON per abilitare il filtraggio per chiamata:

    { "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 registro di CloudWatch Logs per una chiamata specifica utilizzando le query di 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 delle istanze gestite di Lambda, vedere. Comprendere l'ambiente di esecuzione delle istanze gestite Lambda