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 in base alla funzione quando viene richiamata /aws/lambda/<function name> 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 CreateFunctione UpdateFunctionConfigurationLambda e la risorsa AWS Serverless Application Model (AWS SAM) AWS: :Serverless: :Function.

È possibile configurare più funzioni Lambda per inviare i log allo stesso CloudWatch gruppo di log. 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 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 funzione non verranno inviati a. CloudWatch

Modifica del gruppo di log di una funzione (console)
  1. Aprire la pagina Funzioni della console Lambda.

  2. Scegliere una funzione.

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

  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.

Modifica del 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
Definizione di un gruppo di log personalizzato durante la creazione di una funzione (AWS CLI)
  • Per specificare un gruppo di log personalizzato quando si crea una nuova funzione Lambda utilizzando AWS CLI, utilizzare l'--logging-configopzione. Il comando di esempio seguente crea una funzione Lambda Node.js che invia i log a un gruppo di log denominato myLogGroup.

    aws lambda create-function \ --function-name myFunction \ --runtime nodejs22.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 invii i log a CloudWatch Logs, deve disporre dell'autorizzazione logs:. PutLogEvents Quando configuri il gruppo di log della tua funzione utilizzando la console Lambda, Lambda aggiungerà questa autorizzazione al ruolo nelle seguenti condizioni:

  • La destinazione del servizio è impostata su Logs CloudWatch

  • Il ruolo di esecuzione della funzione non dispone delle autorizzazioni per caricare i log in 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 questo permesso, concede alla funzione il permesso di inviare i log a qualsiasi gruppo di log CloudWatch 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 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 politica AWSLambdaBasicExecutionRolegestita.