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à.
Filtrare gli eventi da una origine eventi Amazon MQ
Puoi utilizzare il filtraggio degli eventi per controllare quali record di un flusso o di una coda Lambda invia alla funzione. Per informazioni generali sul funzionamento del filtraggio eventi, consulta Controllare gli eventi che Lambda invia alla funzione.
In questa sezione viene descritto il filtraggio degli eventi per le origini di eventi Amazon MQ.
Nozioni di base sul filtraggio degli eventi Amazon MQ
Supponiamo che la coda di messaggi di Amazon MQ contenga messaggi in formato JSON valido o come stringhe semplici. Un record di esempio sarebbe simile al seguente, con i dati convertiti in una stringa codificata Base64 nel campo data
.
Per i broker sia Active MQ sia Rabbit MQ, puoi utilizzare il filtraggio degli eventi per filtrare i record utilizzando la chiave data
. Supponiamo che la coda Amazon MQ contenga messaggi nel formato JSON seguente.
{ "timeout": 0, "IPAddress": "203.0.113.254" }
Per filtrare solo i record in cui il campo timeout
è maggiore di 0, l'oggetto FilterCriteria
sarebbe il seguente.
{ "Filters": [ { "Pattern": "{ \"data\" : { \"timeout\" : [ { \"numeric\": [ \">\", 0] } } ] } }" } ] }
Per una maggiore chiarezza, ecco il valore del Pattern
del filtro espanso in JSON semplice.
{ "data": { "timeout": [ { "numeric": [ ">", 0 ] } ] } }
Puoi aggiungere il filtro utilizzando la console AWS CLI o un AWS SAM modello.
Con Amazon MQ, puoi anche filtrare i record in cui il messaggio è una stringa semplice. Supponiamo di voler elaborare solo i record in cui il messaggio inizia con "Risultato: ". L'oggetto FilterCriteria
dovrebbe avere la struttura seguente.
{ "Filters": [ { "Pattern": "{ \"data\" : [ { \"prefix\": \"Result: \" } ] }" } ] }
Per una maggiore chiarezza, ecco il valore del Pattern
del filtro espanso in JSON semplice.
{ "data": [ { "prefix": "Result: " } ] }
Puoi aggiungere il filtro utilizzando la console o un modello. AWS CLI AWS SAM
I messaggi Amazon MQ devono essere stringhe codificate in UTF-8, semplici o in formato JSON. Questo perché Lambda decodifica gli array di byte Amazon MQ in UTF-8 prima di applicare i criteri di filtraggio. Se i messaggi utilizzano un'altra codifica, ad esempio UTF-16 o ASCII o se il formato del messaggio non corrisponde al formato FilterCriteria
, Lambda elabora solo i filtri di 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 |
JSON valido |
Filtri Lambda (solo sulle altre proprietà dei metadati) in base ai criteri di filtro. |
JSON valido |
Stringa normale |
Filtri Lambda (solo sulle altre proprietà dei metadati) in base ai criteri di filtro. |
JSON valido |
Nessun modello di filtro per le proprietà dei dati |
Filtri Lambda (solo sulle altre proprietà dei metadati) in base ai criteri di filtro. |
JSON valido |
JSON valido |
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. |