Creare architetture basate su eventi con Eventarc
Puoi utilizzare Eventarc e Firestore per creare architetture basate su eventi. Gli attivatori Firestore per Eventarc generano eventi dalle modifiche apportate a un determinato documento nel database. L'attivatore può instradare gli eventi a una destinazione supportata:
- Funzioni Cloud Run (2ª generazione.) che supportano le librerie client Cloud e l'SDK Firebase
- Cloud Run
- Google Kubernetes Engine
- Workflows
Eventarc offre una soluzione standardizzata per gestire il flusso delle modifiche dello stato, chiamate eventi, tra microservizi disaccoppiati. Quando viene attivato, Eventarc indirizza questi eventi a varie destinazioni e gestisce per te la distribuzione, la sicurezza, l'autorizzazione, l'osservabilità e la gestione degli errori.
Limitazioni
Tieni presenti le seguenti limitazioni per gli attivatori Firestore per Eventarc:
- L'ordine non è garantito. Le variazioni rapide possono attivare gli eventi in un ordine imprevisto.
Gli eventi vengono pubblicati almeno una volta.
Assicurati che il gestore degli eventi sia idempotente ed evita di produrre risultati o effetti collaterali inaspettati quando un evento viene inviato più volte. Per saperne di più, consulta Creazione di funzioni idempotenti.
Un trigger è associato a un singolo database. Non puoi creare un attivatore che corrisponda a più database.
L'eliminazione di un database non comporta l'eliminazione automatica degli attivatori per quel database. L'attivatore interrompe l'invio di eventi, ma continua a esistere finché non lo elimini. Se il database viene ricreato, è necessario eliminare e ricreare anche gli attivatori associati per ripristinare l'invio degli eventi.
Località Eventarc e Firestore
Eventarc non supporta le regioni multiple per gli attivatori di eventi Firestore, ma puoi comunque creare attivatori per i database Firestore in località multiregionali. Eventarc mappa le località Firestore in più regioni alle seguenti regioni Eventarc:
Firestore (più regioni) | Regione Eventarc |
---|---|
nam5 |
us-central1 |
eur3 |
europe-west4 |
Differenze tra le funzioni Cloud Run di 2ª generazione. e 1ª generazione.
Cloud Run Functions (2ª generazione.) utilizza gli eventi Eventarc per tutti i runtime. In precedenza, le funzioni Cloud Run (1ª generazione.) utilizzavano gli eventi Eventarc per solo alcuni runtime. Gli eventi Eventarc presentano le seguenti differenze rispetto alle funzioni Cloud Run (1ª generazione.).
Gli attivatori Firestore per Eventarc supportano altre destinazioni oltre alle funzioni Cloud Run. Puoi instradare
CloudEvents
a una serie di destinazioni, tra cui, a titolo esemplificativo, Cloud Run, GKE e Workflows.Gli attivatori Firestore per Eventarc recuperano la definizione dell'attivatore all'inizio di un'operazione di scrittura del database e la utilizzano per decidere se Firestore deve emettere un evento. L'operazione di scrittura non prende in considerazione le modifiche alla definizione dell'attivatore che potrebbero verificarsi durante l'esecuzione.
Le funzioni Cloud Run (1ª generazione.) recuperano la definizione dell'attivatore durante la valutazione della scrittura del database e le modifiche all'attivatore durante la valutazione possono influire sull'emissione o meno di un evento da parte di Firestore.
Interoperabilità degli eventi in modalità Datastore e modalità Native
Eventarc supporta gli attivatori di eventi sia per la modalità Datastore sia per la modalità Native. Questi attivatori di eventi sono interoperabili con entrambi i tipi di database. Un database Firestore in modalità Native può ricevere eventi Datastore, mentre un database Firestore in modalità Datastore può ricevere eventi in modalità Native.
L'interoperabilità degli eventi ti consente di condividere il codice Eventarc tra database Firestore di diversi tipi.
Conversioni evento
Se applichi un attivatore di eventi in modalità Native a un database in modalità Datastore, Eventarc esegue le seguenti conversioni:
- Lo spazio dei nomi dell'entità è memorizzato nell'attributo
PartitionId
dell'evento. - Le entità incorporate vengono convertite in tipi
map
in modalità Native.
Passaggi successivi
- Scopri di più sulle architetture basate su eventi.