Crea architetture basate su eventi con Eventarc

Puoi utilizzare Eventarc e Firestore per la creazione architetture basate su eventi. Gli attivatori Firestore per Eventarc generano eventi dalle modifiche apportate a un determinato documento nel database. L'attivatore può indirizzare gli eventi a un destinazione supportata:

Eventarc offre una soluzione standardizzata per gestire il flusso modifiche di 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 trigger Firestore per Eventarc:

  • L'ordine non è garantito. Modifiche rapide possono attivare eventi in un ordine imprevisto.
  • Gli eventi vengono pubblicati almeno una volta.

    Assicurati che il tuo gestore di eventi sia idempotente ed evita di produrre risultati imprevisti o effetti collaterali quando un evento viene pubblicato più di una volta. Consulta Creazione di funzioni idempotenti per saperne di più.

  • 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, anche tutti i trigger associati dovranno essere eliminati e ricreati per ripristinare la distribuzione degli eventi.

Località Eventarc e Firestore

Eventarc non supporta più regioni per l'evento Firestore ma puoi comunque creare trigger per i database Firestore in località multiregionali. Eventarc mappa Firestore località multiregionali alle seguenti regioni Eventarc:

Firestore (più regioni) Regione Eventarc
nam5 us-central1
eur3 europe-west4

Differenze tra le funzioni Cloud Run (2ª generazione. e 1ª generazione.)

Le funzioni Cloud Run (2ª gen.) utilizzano 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ª gen.).

  • I trigger Firestore per il supporto Eventarc oltre alle funzioni di Cloud Run. Puoi instradare CloudEvents a una serie di destinazioni, tra cui, a titolo esemplificativo, Cloud Run, GKE e Workflows.

  • I trigger di Firestore per Eventarc recuperano la definizione del trigger all'inizio di un'operazione di scrittura del database e utilizza quella definizione per decidere se Firestore deve emettere un evento. L'operazione di scrittura non prende in considerazione eventuali modifiche alla definizione dell'attivatore che potrebbero verificarsi durante l'esecuzione.

    Le funzioni Cloud Run (1ª gen.) 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 i trigger di eventi sia per la modalità Datastore che per Native . Questi attivatori di eventi sono interoperabili con entrambi i tipi di database. Un database Firestore in modalità Native può ricevere Datastore e un database Firestore in modalità Datastore può ricevere Eventi in modalità Native.

L'interoperabilità degli eventi ti consente di condividere il codice Eventarc di diversi tipi in database Firestore.

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à è archiviato nell'attributo PartitionId dell'evento.
  • Le entità incorporate vengono convertite nei tipi map della modalità nativa.

Passaggi successivi