Eventarc ti consente di creare architetture basate su eventi senza dover implementare, personalizzare o gestire l'infrastruttura sottostante.
Eventarc è disponibile in due versioni: Eventarc Advanced e Eventarc Standard. Entrambe le versioni offrono una soluzione di gestione degli eventi scalabile, serverless e completamente gestita che consente di instradare in modo asincrono gli eventi dalle origini ai target. Per saperne di più, consulta Scegliere Eventarc Advanced o Eventarc Standard.
Eventarc Standard offre una soluzione standardizzata per gestire il flusso delle modifiche dello stato, chiamate eventi, tra microservizi disaccoppiati. Quando viene attivato, Eventarc Standard indirizza questi eventi a varie destinazioni (in questo documento, consulta Destinazioni evento) e gestisce per te la distribuzione, la sicurezza, l'autorizzazione, l'osservabilità e la gestione degli errori.
Puoi gestire Eventarc dalla console Google Cloud, dalla riga di comando utilizzando la CLI gcloud o utilizzando l'API Eventarc.
1 Gli eventi dei provider Google vengono inviati direttamente dall'origine (ad esempio Cloud Storage) o tramite le voci degli audit log di Cloud e utilizzano Pub/Sub come livello di trasporto. Gli eventi provenienti da origini Pub/Sub possono utilizzare un argomento Pub/Sub esistente oppure Eventarc creerà automaticamente un argomento e lo gestirà per te.
2 Gli eventi per le destinazioni Google Kubernetes Engine (GKE), inclusi i servizi di pubblicazione Knative in esecuzione in un cluster GKE, utilizzano il forwarder di eventi di Eventarc per estrarre nuovi eventi da Pub/Sub e inoltrarli alla destinazione. Questo componente funge da mediatore tra il livello di trasporto Pub/Sub e il servizio di destinazione. Funziona sui servizi esistenti e supporta anche i servizi di segnalazione (inclusi quelli non esposti al di fuori del cluster completamente gestito), semplificando la configurazione e la manutenzione. Tieni presente che il ciclo di vita del riassegnatore di eventi è gestito da Eventarc e se lo elimini per errore, Eventarc ripristinerà questo componente.
3 Gli eventi per un'esecuzione del flusso di lavoro vengono trasformati e passati al flusso di lavoro come argomenti di runtime. I flussi di lavoro possono combinare e orchestrare Google Cloud e i servizi API basati su HTTP in un ordine definito da te.
4 Tutte le funzioni basate su eventi nelle funzioni Cloud Run utilizzano gli trigger Eventarc per inviare gli eventi. Puoi configurare gli trigger Eventarc quando esegui il deployment di una funzione Cloud Run utilizzando l'interfaccia delle funzioni Cloud Run.
Casi d'uso principali
Eventarc supporta molti casi d'uso per le applicazioni di destinazione. Ecco alcuni esempi:
Configura e monitora |
|
Armonizzare |
|
Analizza |
|
Eventi
Un evento è un record di dati che esprime un'occorrenza e il relativo contesto. Un evento è un'unità di comunicazione distinta, indipendente da altri eventi. Ad esempio, un evento potrebbe indicare una modifica ai dati di un database, un file aggiunto a un sistema di archiviazione o un job pianificato.
Consulta i tipi di eventi Google supportati da Eventarc.
Provider di eventi
Gli eventi vengono instradati da un provider di eventi (l'origine) ai consumatori di eventi interessati. Il routing viene eseguito in base alle informazioni contenute nell'evento, ma un evento non identifica una destinazione di routing specifica. Eventarc supporta gli eventi di più di 130 provider Google. Questi provider inviano eventi (ad esempio un update a un oggetto in un bucket Cloud Storage o un messaggio pubblicato in un argomento Pub/Sub) direttamente dall'origine o tramite le voci degli audit log di Cloud.
Destinazioni evento
Gli eventi vengono instradati a una destinazione specifica (il target), nota come ricevente (o consumatore) dell'evento, tramite gli abbonamenti push Pub/Sub.
Cloud Run
Scopri come creare un servizio di ricezione di eventi che può essere implementato in Cloud Run.
Per determinare il modo migliore per instradare gli eventi a un servizio Cloud Run, consulta Percorsi evento.
Funzioni Cloud Run
Tutte le funzioni basate sugli eventi in Cloud Run Functions utilizzano gli trigger Eventarc per inviare gli eventi. Un trigger Eventarc consente di attivare una funzione da qualsiasi tipo di evento supportato da Eventarc. Puoi configurare gli attivatori Eventarc quando esegui il deployment di una funzione Cloud Run utilizzando l'interfaccia delle funzioni Cloud Run.
GKE
Eventarc supporta la creazione di attivatori che hanno come target i servizi Google Kubernetes Engine (GKE). Sono inclusi gli endpoint pubblici dei servizi privati e pubblici in esecuzione in un cluster GKE.
Affinché Eventarc possa scegliere come target e gestire i servizi in un determinato cluster, devi concedere all'account di servizio Eventarc tutte le autorizzazioni necessarie.
Devi abilitare Workload Identity Federation for GKE sul cluster GKE su cui è in esecuzione il servizio di destinazione. Workload Identity Federation for GKE è obbligatorio per configurare correttamente il forwarder di eventi ed è il metodo consigliato per accedere ai servizi Google Cloud dalle applicazioni in esecuzione in GKE, grazie al miglioramento delle sue proprietà di sicurezza e della sua gestibilità. Per maggiori informazioni, consulta Abilitare Workload Identity.
Endpoint HTTP interni in una rete VPC
Puoi configurare il routing degli eventi a un endpoint HTTP interno in una rete Virtual Private Cloud (VPC). Per configurare l'attivatore, devi anche fornire un ID collegamento di rete. Per ulteriori informazioni, consulta Indirizzare gli eventi a un endpoint HTTP interno in una rete VPC.
Workflow
Puoi attivare l'esecuzione di un flusso di lavoro. Workflows richiede un indirizzo email dell'account di servizio IAM che verrà utilizzato dall'attivatore Eventarc per invocare le esecuzioni del flusso di lavoro. Ti consigliamo di utilizzare un account di servizio con i privilegi minimi necessari per accedere alle risorse richieste. Per ulteriori informazioni, consulta Creare e gestire gli account di servizio.
Formato degli eventi e librerie
Eventarc pubblica gli eventi, indipendentemente dal provider, nella destinazione di destinazione in formato CloudEvents utilizzando una richiesta HTTP in modalità di contenuti binari. CloudEvents è una specifica per descrivere i metadati degli eventi in un modo comune.
A seconda del fornitore di eventi, puoi specificare la codifica dei dati del payload dell'evento come application/json
o
application/protobuf
. Protocol Buffers (o
Protobuf) è un meccanismo estendibile indipendente da linguaggi e piattaforme per
la serializzazione dei dati strutturati. Tieni presente quanto segue:
- Per le origini personalizzate o i fornitori di terze parti o per gli eventi diretti da Pub/Sub, questa opzione di formattazione non è supportata.
- Un payload dell'evento formattato in JSON è più grande di uno formattato in Protobuf e questo potrebbe influire sull'affidabilità a seconda della destinazione dell'evento e dei relativi limiti di dimensioni. Per ulteriori informazioni, consulta la sezione Problemi noti.
Le destinazioni di destinazione come le funzioni Cloud Run, Cloud Run e GKE consumano gli eventi nel formato HTTP. Per le destinazioni di Workflows, il servizio Workflows converte l'evento in un oggetto JSON e lo passa all'esecuzione del flusso di lavoro come argomento di runtime.
L'utilizzo di un modo standard per descrivere i metadati degli eventi garantisce coerenza, accessibilità e portabilità. I consumatori di eventi possono leggere questi eventi direttamente oppure puoi utilizzare le librerie client di Cloud in vari linguaggi (tra cui C++, C#, Go, Java, Node.js, PHP, Python e Ruby) per leggerli e analizzarli. Esiste anche un insieme di SDK CloudEvents specifici per i vari linguaggi.
La struttura del corpo HTTP per tutti gli eventi è disponibile nel repository GitHub di Google CloudEvents.
Compatibilità con le versioni precedenti
Eventarc considera l'aggiunta dei seguenti attributi e campi compatibili con le versioni precedenti:
- Attributi di filtro facoltativi o solo di output
- Campi facoltativi per il payload dell'evento
Trigger Eventarc
Gli eventi si verificano indipendentemente dal fatto che una destinazione di destinazione reagisca o meno. Puoi creare una risposta a un evento utilizzando un trigger. Un attivatore è una dichiarazione che indica il tuo interesse per un determinato evento o per una serie di eventi. Quando crei un trigger, specifichi i filtri per l'trigger che ti consentono di acquisire e intervenire su questi eventi specifici, incluso il loro instradamento da un'origine evento a una destinazione di destinazione. Per ulteriori informazioni, consulta la rappresentazione REST di una risorsa di trigger e Provider e destinazioni evento.
Tieni presente che gli abbonamenti Pub/Sub creati per Eventarc rimangono invariati indipendentemente dall'attività e non scadono. Per modificare le proprietà di abbonamento, consulta Proprietà di abbonamento.
Eventarc supporta gli attivatori per i seguenti tipi di eventi:
Eventi Cloud Audit Logs (CAL) | |
---|---|
Descrizione | Cloud Audit Logs fornisce audit log per le attività di amministrazione e per l'accesso ai dati per ogni progetto, cartella e organizzazione Cloud.
I servizi Google Cloud scrivono voci in questi log. Puoi creare
filtri per gli trigger Eventarc utilizzando i valori serviceName
e methodName nei log di controllo. Per i valori esatti,
consulta
Google Cloud servizi con audit log.
Per ulteriori informazioni, consulta
Determinare i filtri eventi per gli audit log di Cloud. |
Tipo di filtro eventi | Gli attivatori Eventarc con
type=google.cloud.audit.log.v1.written inviano richieste al tuo
servizio o flusso di lavoro quando viene creato un log di controllo che corrisponde ai
criteri di filtro dell'attivatore. |
Eventi diretti | |
Descrizione | Eventarc può essere attivato da diversi eventi diretti, ad esempio un aggiornamento di un bucket Cloud Storage, un aggiornamento di un modello Firebase Remote Config o modifiche alle risorse su Google Cloud services.
Eventarc può essere attivato anche dai messaggi pubblicati negli argomenti Pub/Sub. Pub/Sub è un bus di messaggi distribuito a livello globale che si espande automaticamente in base alle esigenze. Poiché Eventarc può essere invocato dai messaggi di un argomento Pub/Sub, puoi integrarlo con qualsiasi altro servizio che supporta Pub/Sub come destinazione. |
Tipo di filtro eventi | Gli attivatori Eventarc con
tipi di filtri evento specifici inviano richieste al servizio o al flusso di lavoro quando
si verifica un evento che corrisponde ai criteri di filtro dell'attivatore; ad esempio,
type=google.cloud.storage.object.v1.finalized (quando viene creato un oggetto
in un bucket Cloud Storage) o
type=google.cloud.pubsub.topic.v1.messagePublished (quando viene pubblicato un messaggio
nell'argomento Pub/Sub specificato).
|
Posizione dell'attivatore
Google Cloud I servizi come Cloud Storage possono essere configurati per essere regionali o multiregionali. Alcuni servizi, come Cloud Build, possono essere configurati a livello globale.
Eventarc ti consente di creare trigger a livello di regione o, per alcuni eventi, puoi creare un trigger globale e ricevere eventi da tutte le regioni. Per ulteriori informazioni, consulta Informazioni sulle località Eventarc.
Devi specificare la posizione dell'attivatore Eventarc in modo che corrisponda alla posizione del Google Cloud servizio che genera gli eventi ed evitare eventuali problemi di prestazioni e residenza dei dati causati da un attivatore globale.
Puoi specificare le posizioni di attivazione utilizzando un flag --location
con ogni comando.
Per le destinazioni Cloud Run, se non viene specificato un --destination-run-region
flag, si presume che il servizio si trovi nella stessa regione dell'attivatore. Per ulteriori informazioni, consulta la documentazione di riferimento di Google Cloud CLI.
Affidabilità e pubblicazione
Le aspettative di consegna sono le seguenti:
- Gli eventi che utilizzano Cloud Audit Logs vengono inviati in meno di un minuto. Tieni presente che, anche se un trigger Cloud Audit Logs viene creato immediatamente, possono essere necessari fino a due minuti per la propagazione e il filtro degli eventi.
- Gli eventi che utilizzano Pub/Sub vengono pubblicati in pochi secondi.
Non è garantita la consegna in ordine e con invio in base all'ordine di arrivo. Tieni presente che un ordine rigoroso minerebbe le funzionalità di disponibilità e scalabilità di Eventarc, che corrispondono a quelle del suo livello di trasporto, Cloud Pub/Sub. Per ulteriori informazioni, consulta la sezione Ordinare i messaggi.
La latenza e il throughput sono garantiti al meglio delle possibilità. Variano in base a diversi fattori, tra cui se l'attivatore Eventarc è regionale, multiregionale o globale; la configurazione di un determinato servizio; e il carico della rete sulle risorse in una regione. Google Cloud
Tieni presente che esistono quote e limiti di utilizzo che si applicano in genere a Eventarc. Esistono inoltre quote e limiti di utilizzo specifici per i flussi di lavoro.
Criterio di ripetizione degli eventi
Le caratteristiche di ripetizione di Eventarc corrispondono a quelle del suo livello di trasporto, Cloud Pub/Sub. Per ulteriori informazioni, consulta la sezione Riprova le richieste e Ritiro push.
La durata di conservazione dei messaggi predefinita impostata da Eventarc è di 24 ore con un ritardo di backoff esponenziale.
Puoi aggiornare la regola di ripetizione tramite l'abbonamento Pub/Sub associato all'attivatore Eventarc:
- Apri la pagina Dettagli trigger.
- Fai clic sull'argomento.
- Fai clic sulla scheda Sottoscrizioni.
Qualsiasi abbonamento
creato automaticamente da Eventarc avrà questo formato:
projects/PROJECT_ID/subscriptions/eventarc-REGION-TRIGGER_ID-sub-SUBSCRIPTION_ID
. Per ulteriori informazioni sui limiti di abbonamento, consulta Limiti delle risorse Pub/Sub.
Se Pub/Sub tenta di consegnare un messaggio, ma la destinazione non può confermarlo, lo invierà di nuovo con un backoff esponenziale minimo di 10 secondi. Se la destinazione continua a non confermare il messaggio, a ogni nuovo tentativo viene aggiunto altro tempo al ritardo (fino a un massimo di 600 secondi) e il messaggio viene inviato di nuovo alla destinazione.
Tieni presente che Workflows conferma gli eventi non appena inizia la esecuzione del flusso di lavoro.
Argomenti messaggi non recapitabili
Se la destinazione non riceve il messaggio, puoi inoltrare i messaggi non recapitati a un argomento messaggi non recapitabili (noto anche come coda messaggi non recapitabili). Un argomento messaggi non recapitabili può memorizzare i messaggi che la destinazione non è in grado di confermare. Devi impostare un argomento per le email in arrivo quando crei o aggiorni una sottoscrizione Pub/Sub, non quando crei un argomento Pub/Sub o quando Eventarc ne crea uno. Per ulteriori informazioni, consulta la sezione Gestire gli errori dei messaggi.
Errori che non richiedono ulteriori tentativi
Quando le applicazioni utilizzano Pub/Sub come origine evento e l'evento non viene recapitato, viene riprovato automaticamente, tranne per gli errori che non richiedono ripetuti tentativi. Gli eventi destinati alla destinazione del flusso di lavoro da qualsiasi origine non verranno riprovati se il flusso di lavoro non viene eseguito. Se l'esecuzione del flusso di lavoro viene avviata, ma in un secondo momento non va a buon fine, le esecuzioni non vengono ripetute. Per risolvere questi problemi di servizio, devi gestire gli errori e i riprova all'interno del flusso di lavoro.
Eventi duplicati
Gli eventi duplicati potrebbero essere inviati ai gestori di eventi. In base alla
specifica CloudEvents,
la combinazione di attributi source
e id
è considerata univoca e
di conseguenza tutti gli eventi con la stessa combinazione sono considerati duplicati.
Come best practice generale, devi implementare gestori eventi idempotenti.
Osservabilità
I log dettagliati per Eventarc, Cloud Run, funzioni Cloud Run, GKE, Pub/Sub e Workflows sono disponibili in Cloud Audit Logs.
Ripristino di emergenza
Puoi sfruttare le zone e le regioni per garantire l'affidabilità in caso di interruzioni. Per scoprire di più su come garantire il rispetto degli obiettivi RTO (Recovery Time Objective) e RPO (Recovery Point Objective) per i tempi di backup e ripristino quando utilizzi Eventarc, consulta Architecting disaster recovery for cloud infrastructure outages.
Standard di conformità
Eventarc è conforme a queste certificazioni e standard.
Passaggi successivi
- Scopri di più sull'elaborazione degli eventi serverless
- Prova il codelab
- Creare un trigger per un fornitore, un tipo di evento e una destinazione specifici
- Risolvere i problemi