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 conveniente per l'archiviazione di 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 Lambda e tutti gli SDK AWS CLI. AWS CloudFormation AWS
Prezzi
Per informazioni dettagliate sui prezzi, consulta i prezzi di Amazon. CloudWatch
Autorizzazioni richieste per la destinazione dei log di Amazon S3
Quando utilizzi la console Lambda per configurare Amazon S3 come destinazione del log della tua funzione, devi:
-
Le autorizzazioni IAM richieste per utilizzare CloudWatch Logs with Lambda.
-
A Configura un filtro di sottoscrizioni Logs per inviare CloudWatch i log delle funzioni Lambda ad Amazon S3. Questo filtro definisce quali eventi di log vengono inviati al tuo bucket Amazon S3.
Configura un filtro di sottoscrizioni Logs per inviare CloudWatch i log delle funzioni Lambda ad Amazon S3
Per inviare i CloudWatch log da Logs ad Amazon S3, devi creare un filtro di abbonamento. Questo filtro definisce quali eventi di log vengono inviati al tuo bucket Amazon S3. Il bucket Amazon S3 deve trovarsi nella stessa regione del gruppo di log.
Creazione di un filtro di sottoscrizione per Amazon S3
-
Crea un bucket Amazon Simple Storage Service (Amazon S3). Ti consigliamo di utilizzare un bucket creato appositamente per Logs. CloudWatch 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 di nome di 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 CloudWatch concede a Logs l'autorizzazione a inserire dati nel tuo bucket Amazon S3. Questa policy include una chiave di contesto aws: SourceArn global condition per aiutare a prevenire il confuso problema di sicurezza secondario. Per ulteriori informazioni consulta Prevenzione del problema "confused deputy".
-
Usa un editor di testo per creare una politica di fiducia in un file
~/TrustPolicyForCWL.jsoncome 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à. Nota del Role.Arn valore restituito, in quanto ti servirà in un passaggio successivo:
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 politica di autorizzazioni per definire le azioni che CloudWatch Logs può eseguire sul 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
put-role-policy:aws iam put-role-policy --role-name CWLtoS3Role --policy-name Permissions-Policy-For-S3 --policy-document file://~/PermissionsForCWL.json -
Scegli un gruppo di log
Deliveryesistente o creane uno nuovoDelivery.aws logs create-log-group --log-group-name my-logs --log-group-class DELIVERY --region REGION_NAME -
Configurazione della destinazione
PutSubscriptionFilteraws 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 dei 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. A tale scopo, completa questi passaggi:
-
Accedi alla console di AWS gestione e apri la console Lambda.
-
Scegli il nome della tua funzione.
-
Scegli la scheda Configurazione.
-
Scegli la scheda Strumenti di monitoraggio e operazioni.
-
Nel riquadro Configurazione della registrazione, scegli Modifica.
-
Nella sezione «Contenuto del registro», seleziona un formato di registro.
-
Nella sezione «Destinazione del registro», completa i seguenti passaggi:
-
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 scelto sia un tipo di gruppo di
Deliverylog. -
Scegli un bucket Amazon S3 come destinazione per i tuoi log di funzione.
-
Viene visualizzato il gruppo di CloudWatch
Deliverylog.
-
-
Scegli Save (Salva).
Nota
Se il ruolo IAM fornito nella console non dispone delle autorizzazioni richieste, la configurazione della destinazione non riesce. Per risolvere questo problema, consulta Autorizzazioni richieste per la destinazione dei log di Amazon S3.
Cross-Account Registrazione
Puoi configurare Lambda per inviare i log a un bucket Amazon S3 in un account diverso. 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 più account, inclusi i ruoli e le policy IAM richiesti, consulta Configurazione di una nuova sottoscrizione tra account nella documentazione di Logs. CloudWatch