View a markdown version of this page

Filtrare gli eventi per un abbonato - Amazon EventBridge

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 per un abbonato

Un filtro seleziona gli eventi ricevuti da un abbonato. FilterConfigurationAssocia a al sottoscrittore con uno o più filtri, ognuno con un nome a Scope e una sintassi Pattern in EventBridge event pattern. Ad esempio, un DATA filtro con il modello {"detail":{"amount":[{"numeric":[">",500]}]}} fornisce solo gli ordini superiori a 500 pubblicati con. PutEvents Questa pagina descrive il modello di filtro; per gli operatori dei pattern, vedereSchemi di EventBridge eventi Amazon. I filtri per abbonati non supportano la corrispondenza con caratteri jolly.

Come funziona il filtro

Ogni filtro è composto da due parti: aScope, che è la parte dell'evento esaminato dal filtro (DATA,METADATA, oSYSTEM_METADATA; vediStruttura degli eventi: dati, metadati e metadati di sistema) e aPattern, un modello di evento fornito come stringa JSON. EventBridge combina i filtri in una configurazione con AND: un evento deve corrispondere a tutti i filtri prima che l'abbonato lo riceva. Un abbonato senza no FilterConfiguration riceve tutti gli eventi.

I tre ambiti

DATA

Esamina i dati dell'evento. PerchéPutRawEvents, i dati sono il payload che hai inviato. PerchéPutEvents, i dati sono la EventBridge busta e il tuo Detail è annidato sotto la chiave. detail DATAi filtri supportano tutti gli operatori di pattern di eventi tranne i caratteri jolly. EventBridge deserializza application/protobuf gli eventi in JSON application/avro e un DATA filtro esamina quel JSON come qualsiasi evento JSON. Un application/octet-stream evento non contiene dati leggibili da un filtro, quindi un abbonato con un filtro non ne corrisponde mai uno; e i DATA filtri funzionano comunque su di esso. METADATA SYSTEM_METADATA

METADATA

Esamina le coppie chiave-valore impostate dall'editore. Metadata PutRawEvents METADATAi filtri corrispondono solo a valori esatti: ogni valore nel modello deve essere un array JSON di valori esatti e operatori comeprefix, numericexists, e $or non sono supportati. Per utilizzare questi operatori, filtrate su DATA oSYSTEM_METADATA. Un PutEvents evento non ha metadati dell'editore, quindi un METADATA filtro non corrisponde mai a uno.

SYSTEM_METADATA

Esamina i EventBridge set di campi relativi all'evento, elencati nella tabella seguente. SYSTEM_METADATAi filtri supportano tutti gli operatori di pattern di eventi tranne i caratteri jolly. I campi EventBridge generati portano il aws: prefisso.

CampoDescriptionPresente il
ContentTypeIl tipo di contenuto dei dati dell'eventoOgni evento
DeduplicationIdL'identificatore di deduplicazioneOgni evento
EventGroupIdIl gruppo di eventiOgni evento
aws:EventIdL'identificatore assegnato EventBridge Ogni evento
aws:IngestionTimeQuando EventBridge ho ricevuto l'eventoOgni evento
aws:SequenceNumberIl numero di sequenza EventBridge assegnatoOgni evento
aws:DeliveryTypeLIVE o REPLAYOgni evento consegnato
aws:SchemaIdL'identificatore dello schema del registro: un UUID di versione per Glue, un numero intero per ConfluentEventi Avro e Protobuf
aws:RegistryTypeGlue o ConfluentEventi Avro e Protobuf
aws:SourceLa fonte dell'eventoPutEvents, AWS servizi ed eventi per i partner SaaS
aws:DetailTypeIl tipo di dettaglio dell'eventoPutEvents, AWS servizi ed eventi per i partner SaaS
Nota

Per filtrare gli eventi AWS di servizio o gli eventi dei partner SaaS, usa aws:Source e. aws:DetailType EventBridge scrive questi campi e nessuna chiamata di pubblicazione può impostare una fonte che inizi conaws., in modo da identificare l'origine verificata dell'evento. Non utilizzare i detail-type campi source e nei dati dell'evento per questo scopo; qualsiasi editore può scriverli. Consulta Sorgenti di eventi per un bus di eventi personalizzato.

Esempio: filtrare un evento pubblicato con PutRawEvents

PutRawEventspubblica un payload con un tipo di contenuto. Un DATA filtro corrisponde direttamente al payload e un METADATA filtro corrisponde alla mappa dei metadati dell'editore. La configurazione seguente prevede un filtro per ambito; l'abbonato riceve un evento solo quando tutti e tre corrispondono: il payload amount è superiore a 500, la chiave dei metadati è e il tipo di contenuto region è JSONEU.

{ "Filters": [ { "Scope": "DATA", "Pattern": "{\"amount\":[{\"numeric\":[\">\",500]}]}" }, { "Scope": "METADATA", "Pattern": "{\"region\":[\"EU\"]}" }, { "Scope": "SYSTEM_METADATA", "Pattern": "{\"ContentType\":[\"application/json\"]}" } ] }

Esempio: filtrare un evento pubblicato con PutEvents

PutEventspubblica un evento nella EventBridge busta, composto dalle vociSource,, DetailType ResourcesTime, e. Detail Un DATA filtro corrisponde a questa busta, con il tuo Detail nome annidato al di sotto. detail L'evento ContentType è application/eventbridge+json aws:Source e aws:DetailType proviene dal campo d'ingresso Source e DetailType anche la busta espone source e detail-type rientra nell'ambito. DATA La seguente configurazione corrisponde quando il numero di dettagli è superiore amount a 500 e l'origine lo è. com.myapp.storage

{ "Filters": [ { "Scope": "DATA", "Pattern": "{\"detail\":{\"amount\":[{\"numeric\":[\">\",500]}]}}" }, { "Scope": "SYSTEM_METADATA", "Pattern": "{\"aws:Source\":[\"com.myapp.storage\"]}" } ] }

Esempio: filtrare gli eventi da una fonte di eventi

Gli eventi rilevati da una fonte di eventi arrivano nella EventBridge busta, con il servizio o il partner di origine all'interno. aws:Source Per ricevere solo eventi creati da oggetti Amazon S3 per un bucket, abbina il servizio in ingresso e il bucket in. SYSTEM_METADATA DATA Per un partner, abbina il nome della fonte dell'evento partner, ad esempio con un on. prefix aws.partner/example.com

{ "Filters": [ { "Scope": "SYSTEM_METADATA", "Pattern": "{\"aws:Source\":[\"aws.s3\"]}" }, { "Scope": "DATA", "Pattern": "{\"detail-type\":[\"Object Created\"],\"detail\":{\"bucket\":{\"name\":[\"amzn-s3-demo-bucket\"]}}}" } ] }

Comportamento e limiti

  • Combinazione AND: un evento deve corrispondere a tutti i filtri della configurazione.

  • Nessun filtro: un abbonato senza configurazione di filtro riceve tutti gli eventi.

  • Un filtro per ambito: una configurazione contiene al massimo un filtro per ogni ambito, quindi al massimo tre filtri. EventBridge rifiuta una configurazione con due filtri dello stesso ambito.

  • Carattere jolly: l'wildcardoperatore e quelli anything-but con un carattere jolly vengono rifiutati, con il messaggio Filter pattern non deve contenere caratteri jolly corrispondenti (jolly, anything-but jolly).

  • Combinazioni di pattern con $or: EventBridge rifiuta un filtro il cui utilizzo produce più di 1.000 combinazioni di pattern. $or Moltiplica il numero di argomenti in ogni $or matrice: una matrice di tre dà tre combinazioni, una seconda matrice di due dà sei.

  • Dimensioni: tutti i filtri in una configurazione condividono un limite di 4.096 byte nei tre ambiti.

  • Forma del pattern: un DATA pattern può avere un array alla sua radice; METADATA e i SYSTEM_METADATA pattern devono essere oggetti JSON. Un pattern che non è un JSON valido viene rifiutato quando si crea o si aggiorna il sottoscrittore.

  • Modifiche: i filtri di un abbonato possono cambiare 24 volte in 24 ore consecutive; vedi. Aggiornamento, sospensione e ripresa di un abbonato

Un modello scritto con la forma sbagliata non fallisce; non corrisponde a nulla. Prima di affidarti a un abbonato, pubblica un evento che dovrebbe corrispondere e uno che non dovrebbe corrispondere e controllali entrambi nella destinazione.