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à.
Utilizzo del filtraggio degli eventi con una fonte di eventi Apache Kafka autogestita
Puoi utilizzare il filtraggio degli eventi per controllare quali record di un flusso o di una coda Lambda invia alla funzione. Per informazioni generali su come funziona il filtraggio degli eventi, consulta. Controlla quali eventi Lambda invia alla tua funzione
Questa sezione si concentra sul filtraggio degli eventi per le sorgenti di eventi Apache Kafka autogestite.
Nozioni di base sul filtraggio degli eventi di Apache Kafka autogestito
Supponiamo che un produttore stia scrivendo messaggi su un argomento nel cluster Apache Kafka autogestito, in formato valido o come stringhe semplici. JSON Un record di esempio sarebbe simile al seguente, con il messaggio convertito in una stringa codificata Base64 nel campo value
.
{ "mytopic-0":[ { "topic":"mytopic", "partition":0, "offset":15, "timestamp":1545084650987, "timestampType":"CREATE_TIME", "value":"SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==", "headers":[] } ] }
Supponiamo che il produttore di Apache Kafka stia scrivendo messaggi sul tuo argomento nel seguente formato. JSON
{ "device_ID": "AB1234", "session":{ "start_time": "yyyy-mm-ddThh:mm:ss", "duration": 162 } }
Puoi utilizzare la chiave value
per filtrare i record. Supponiamo di voler filtrare solo i record in cui device_ID
inizia con le lettere AB. L'oggetto FilterCriteria
dovrebbe avere la struttura seguente.
{ "Filters": [ { "Pattern": "{ \"value\" : { \"device_ID\" : [ { \"prefix\": \"AB\" } ] } }" } ] }
Per maggiore chiarezza, ecco il valore del filtro espanso in chiaroPattern
. JSON
{ "value": { "device_ID": [ { "prefix": "AB" } ] } }
Puoi aggiungere il filtro utilizzando la console AWS CLI o un AWS SAM modello.
Con Apache Kafka autogestito, puoi anche filtrare i record in cui il messaggio è una stringa semplice. Supponiamo di voler ignorare i messaggi la cui stringa è "errore". L'oggetto FilterCriteria
dovrebbe avere la struttura seguente.
{ "Filters": [ { "Pattern": "{ \"value\" : [ { \"anything-but\": [ \"error\" ] } ] }" } ] }
Per maggiore chiarezza, ecco il valore del filtro espanso in chiaroPattern
. JSON
{ "value": [ { "anything-but": [ "error" ] } ] }
Puoi aggiungere il filtro utilizzando la console AWS CLI o un AWS SAM modello.
I messaggi di Apache Kafka autogestiti devono essere costituiti da UTF -8 stringhe codificate, semplici o in formato. JSON Questo perché Lambda decodifica gli array di byte Kafka in -8 prima di applicare i criteri di filtro. UTF Se i tuoi messaggi utilizzano un'altra codifica, ad esempio UTF -16 oASCII, o se il formato del messaggio non corrisponde al FilterCriteria
formato, Lambda elabora solo i filtri dei metadati. La tabella seguente riepiloga il comportamento specifico:
Formato messaggio in arrivo | Formato del modello di filtro per le proprietà di messaggi | Operazione risultante |
---|---|---|
Stringa normale |
Stringa normale |
Filtri Lambda in base ai criteri di filtro. |
Stringa normale |
Nessun modello di filtro per le proprietà dei dati |
Filtri Lambda (solo sulle altre proprietà dei metadati) in base ai criteri di filtro. |
Stringa normale |
Valido JSON |
Filtri Lambda (solo sulle altre proprietà dei metadati) in base ai criteri di filtro. |
Valido JSON |
Stringa normale |
Filtri Lambda (solo sulle altre proprietà dei metadati) in base ai criteri di filtro. |
Valido JSON |
Nessun modello di filtro per le proprietà dei dati |
Filtri Lambda (solo sulle altre proprietà dei metadati) in base ai criteri di filtro. |
Valido JSON |
Valido JSON |
Filtri Lambda in base ai criteri di filtro. |
Stringa codificata non UTF -8 |
JSON, stringa semplice o nessun modello |
Filtri Lambda (solo sulle altre proprietà dei metadati) in base ai criteri di filtro. |