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à.
Invio di log delle funzioni Lambda ad Amazon S3
Puoi configurare la tua funzione Lambda per inviare i log direttamente ad Amazon S3 utilizzando la console Lambda. Questa funzionalità offre una soluzione economica per l'archiviazione dei log a lungo termine e consente potenti opzioni di analisi utilizzando servizi come Athena.
Nota
Puoi configurare i log delle funzioni Lambda da inviare ad Amazon S3 utilizzando la console AWS CLI Lambda e tutti gli SDK. AWS CloudFormation AWS
Prezzi
Per informazioni sui prezzi, consulta i prezzi di Amazon CloudWatch
Autorizzazioni necessarie per la destinazione del log Amazon S3
Quando utilizzi la console Lambda per configurare Amazon S3 come destinazione dei log della tua funzione, devi:
-
Le autorizzazioni IAM richieste per utilizzare CloudWatch Logs with Lambda.
-
Da a Configura un filtro di sottoscrizioni CloudWatch Logs per inviare i log delle funzioni Lambda ad Amazon S3. Questo filtro definisce quali eventi di log vengono distribuiti al bucket Amazon S3.
Configura un filtro di sottoscrizioni CloudWatch Logs per inviare i log delle funzioni Lambda ad Amazon S3
Per inviare i log da CloudWatch Logs ad Amazon S3, devi creare un filtro di sottoscrizione. Questo filtro definisce quali eventi di log vengono distribuiti al bucket Amazon S3. L'argomento deve trovarsi nella stessa Regione del bucket Amazon S3.
Creazione di un filtro di sottoscrizione per Amazon S3
-
Crea un bucket Amazon Simple Storage Service (Amazon S3). Consigliamo di utilizzare un bucket creato appositamente per CloudWatch Logs. Tuttavia, se intendi utilizzare un bucket esistente, puoi passare alla fase 2.
Esegui il comando seguente, sostituendo il segnaposto Regione con la Regione che desideri utilizzare:
aws s3api create-bucket --bucket amzn-s3-demo-bucket2 --create-bucket-configuration LocationConstraint=regionNota
amzn-s3-demo-bucket2è un esempio del nome del bucket Amazon S3. È riservato. Affinché questa procedura funzioni, è necessario sostituirla con il nome univoco del bucket Amazon S3.Di seguito è riportato un output di esempio:
{ "Location": "/amzn-s3-demo-bucket2" } -
Crea il ruolo IAM che concede a File di log CloudWatch l'autorizzazione per inserire dati nel flusso. Questa policy include una chiave di contesto della condizione globale per prevenire il problema di sicurezza noto come "confused deputy". Per ulteriori informazioni sulla prevenzione del problema del "confused deputy", consulta .
-
In primo luogo, utilizza un editor di testo per creare una policy di attendibilità in un file
~/TrustPolicyForCWL.json, come segue:{ "Statement": { "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:logs:region:123456789012:*" } }, "Action": "sts:AssumeRole" } } -
Utilizza il comando create-role per creare un ruolo IAM, specificando il file della policy di attendibilità. Annota il valore Role.Arn restituito, poiché ne avrai bisogno anche in una fase successiva:
aws iam create-role \ --role-name CWLtoS3Role \ --assume-role-policy-document file://~/TrustPolicyForCWL.json { "Role": { "AssumeRolePolicyDocument": { "Statement": { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:logs:region:123456789012:*" } } } }, "RoleId": "AAOIIAH450GAB4HC5F431", "CreateDate": "2015-05-29T13:46:29.431Z", "RoleName": "CWLtoS3Role", "Path": "/", "Arn": "arn:aws:iam::123456789012:role/CWLtoS3Role" } }
-
-
Crea una policy di autorizzazioni per definire che operazioni possono essere eseguite da CloudWatch Logs nel tuo account. In primo luogo, utilizza un editor di testo per creare una policy di autorizzazione in un file
~/PermissionsForCWL.json:{ "Statement": [ { "Effect": "Allow", "Action": ["s3:PutObject"], "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket2/*"] } ] }Associa la policy di autorizzazioni al ruolo inserendo il comando seguente:
aws iam put-role-policy --role-name CWLtoS3Role --policy-name Permissions-Policy-For-S3 --policy-document file://~/PermissionsForCWL.json -
Scegli un gruppo di log esistente o creane uno nuovo.
aws logs create-log-group --log-group-name my-logs --log-group-class DELIVERY --region REGION_NAME -
Configurazione della destinazione
aws logs put-subscription-filter --log-group-name my-logs --filter-name my-lambda-delivery --filter-pattern "" --destination-arn arn:aws:s3:::amzn-s3-demo-bucket2 --role-arn arn:aws:iam::123456789012:role/CWLtoS3Role --region REGION_NAME
Invio di log delle funzioni Lambda ad Amazon S3
Nella console Lambda, puoi inviare i log delle funzioni direttamente ad Amazon S3 dopo aver creato una nuova funzione. Per farlo, completa le seguenti fasi.
-
Accedi alla console di gestione e apri laconsole .
-
Scegli il nome della tua funzione.
-
Scegli la scheda Configurazione.
-
Scegli la scheda Strumenti operativi e di monitoraggio.
-
Nel riquadro Configurazione della registrazione, scegli Modifica.
-
Nella sezione «Contenuto del registro», seleziona un formato di registro.
-
Nella sezione Step 1 (Fase 1) completare i passaggi seguenti.
-
Seleziona un servizio di destinazione.
-
Scegli un gruppo di log esistente o creane uno nuovo.
Nota
Se scegli un gruppo di log esistente per una destinazione Amazon S3, assicurati che il gruppo di log che scegli sia un tipo di gruppo di
Deliverylog. -
Scegli un bucket Amazon S3 come destinazione per i log delle funzioni.
-
Verrà visualizzato il gruppo di log
DeliveryCloudWatch.
-
-
Selezionare Salva.
Nota
Se il ruolo IAM fornito nella console non dispone delle autorizzazioni richieste, la configurazione della destinazione avrà esito negativo. Per risolvere questo problema, consulta Autorizzazioni richieste per la destinazione dei log di Amazon S3.
Registrazione multi-account
È possibile configurare Lambda per inviare i log a un bucket Amazon S3 in un account. AWS Ciò richiede l'impostazione di una destinazione e la configurazione delle autorizzazioni appropriate in entrambi gli account.
Per istruzioni dettagliate sulla configurazione della registrazione tra account, inclusi i ruoli e le policy IAM richiesti, consulta Configurazione di un nuovo abbonamento tra account nella documentazione di CloudWatch Logs.