Come posso configurare un filtro di sottoscrizione CloudWatch per richiamare la mia funzione Lambda?
Desidero configurare un filtro di sottoscrizione Amazon CloudWatch per richiamare la mia funzione AWS Lambda.
Breve descrizione
Con File di log Amazon CloudWatch puoi utilizzare un filtro di sottoscrizione che invia i dati di log alla tua funzione Lambda. I filtri di sottoscrizione di CloudWatch Logs sono codificati in base64 e compressi con il formato GZIP.
Prima di creare la funzione Lambda, calcola il volume di dati di log che verranno generati. Assicurati di creare una funzione in grado di gestire il volume calcolato. Se la funzione non prevede un volume sufficiente, il flusso di log viene limitato. Per ulteriori informazioni, consulta la pagina Lambda quotas (Quote di Lambda).
Nota: lo streaming di grandi quantità di dati di CloudWatch Logs potrebbe comportare costi di utilizzo elevati. Consigliamo di servirsi di Budget AWS per tenere traccia della spesa e dell'utilizzo. Per istruzioni, consulta la pagina Come posso utilizzare Budget AWS per tenere traccia delle mie spese e del mio utilizzo?
Risoluzione
Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), assicurati di utilizzare la versione più recente di AWS CLI.
1. Per fornire a CloudWatch Logs l'autorizzazione a richiamare la tua funzione Lambda, esegui il comando dell'AWS CLI add-permission simile al seguente:
aws lambda add-permission \ --function-name "helloworld" \ --statement-id "helloworld" \ --principal "logs.amazonaws.com" \ --action "lambda:InvokeFunction" \ --source-arn "arn:aws:logs:region:123456789123:log-group:YourLogGroup:*" \ --source-account "123456789012"
Importante: sostituisci "helloworld" con il nome della tua funzione Lambda, "YourLogGroup" con il tuo gruppo di log e il numero di account di esempio con il tuo account.
2. Crea un filtro di sottoscrizione utilizzando il comando dell'AWS CLI put-subscription-filter per inviare eventi di log che contengono una parola chiave. Nell'esempio seguente, la parola chiave "ERROR" viene utilizzata per la funzione Lambda:
Importante: sostituisci "YourLogGroup" con il tuo gruppo di log e il numero di account di esempio con il tuo account.
aws logs put-subscription-filter \ --log-group-name YourLogGroup \ --filter-name demo \ --filter-pattern "ERROR" \ --destination-arn arn:aws:lambda:region:123456789123:function:helloworld
Il gruppo di log di CloudWatch "YourLogGroup" richiama la funzione Lambda quando riceve un evento di log che contiene la parola chiave "ERROR" simile alla seguente:
{ "awslogs": { "data": "H4sIAAAAAAAAAHWPwQqCQBCGX0Xm7EFtK+smZBEUgXoLCdMhFtKV3akI8d0bLYmibvPPN3wz00CJxmQnTO41whwWQRIctmEcB6sQbFC3CjW3XW8kxpOpP+OC22d1Wml1qZkQGtoMsScxaczKN3plG8zlaHIta5KqWsozoTYw3/djzwhpLwivWFGHGpAFe7DL68JlBUk+l7KSN7tCOEJ4M3/qOI49vMHj+zCKdlFqLaU2ZHV2a4Ct/an0/ivdX8oYc1UVX860fQDQiMdxRQEAAA==" } }
Informazioni correlate
Filter and pattern syntax (Sintassi dei filtri e dei pattern)
Contenuto pertinente
- AWS UFFICIALEAggiornata 3 anni fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata un anno fa