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 gli eventi in modo asincrono dalle origini alle destinazioni. Per saperne di più, vedi 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, vedi Destinazioni degli eventi) 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 gcloud CLI o utilizzando l'API Eventarc.
1 Eventi dei provider Google vengono inviati direttamente dall'origine (ad esempio Cloud Storage) o tramite le voci di Cloud Audit Logs 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à e gestirà automaticamente un argomento per te.
2 Gli eventi per le destinazioni Google Kubernetes Engine (GKE), inclusi i servizi Knative Serving in esecuzione in un cluster GKE, utilizzano Event Forwarder di Eventarc per estrarre nuovi eventi da Pub/Sub e inoltrarli alla destinazione. Questo componente funge da mediatore tra il livello di trasporto di Pub/Sub e il servizio di destinazione. Funziona con i servizi esistenti e supporta anche i servizi di segnalazione (inclusi quelli non esposti all'esterno del cluster completamente gestito), semplificando la configurazione e la manutenzione. Tieni presente che il ciclo di vita dell'inoltro di eventi è gestito da Eventarc e che, se lo elimini accidentalmente, Eventarc ripristinerà questo componente.
3 Gli eventi per l'esecuzione di un flusso di lavoro vengono trasformati e passati al flusso di lavoro come argomenti runtime. Workflows può 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 in Cloud Run Functions utilizzano trigger Eventarc per distribuire gli eventi. Puoi configurare i trigger Eventarc quando esegui il deployment di una funzione Cloud Run utilizzando l'interfaccia Cloud Run Functions.
Principali casi d'uso
Eventarc supporta molti casi d'uso per le applicazioni di destinazione. Ecco alcuni esempi:
Configurare e monitorare |
|
Armonizza |
|
Analizza |
|
Eventi
Un evento è un record di dati che esprime un'occorrenza e il relativo contesto. Un evento è un'unità di comunicazione discreta, 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 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 eventi provenienti da più di 130 provider Google. Questi provider inviano eventi (ad esempio, un aggiornamento a un oggetto in un bucket Cloud Storage o un messaggio pubblicato in un argomento Pub/Sub) direttamente dall'origine o tramite le voci di Cloud Audit Logs.
Destinazioni degli eventi
Gli eventi vengono indirizzati a una destinazione specifica (il target) nota come ricevitore (o consumer) di eventi tramite le sottoscrizioni 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 Route degli eventi.
Cloud Run Functions
Tutte le funzioni basate sugli eventi in Cloud Run Functions utilizzano i trigger Eventarc per distribuire gli eventi. Un trigger Eventarc consente l'attivazione di una funzione da parte di qualsiasi tipo di evento supportato da Eventarc. Puoi configurare i trigger Eventarc quando esegui il deployment di una funzione Cloud Run utilizzando l'interfaccia Cloud Run Functions.
GKE
Eventarc supporta la creazione di trigger 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 alaccount di serviziot 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 è necessario per configurare correttamente l'event forwarder ed è il metodo consigliato per accedere Google Cloud ai servizi 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 il trigger, devi fornire anche un ID collegamento di rete. Per maggiori informazioni, vedi Instradare gli eventi a un endpoint HTTP interno in una rete VPC.
Workflow
Puoi attivare l'esecuzione di un workflow. Workflows richiede un indirizzo email dell'account di servizio IAM che il trigger Eventarc utilizzerà per richiamare le esecuzioni del workflow. Ti consigliamo di utilizzare un account di servizio con i privilegi minimi necessari per accedere alle risorse richieste. Per ulteriori informazioni, vedi Creare e gestire i service account.
Formato degli eventi e librerie
Eventarc distribuisce gli eventi, indipendentemente dal provider, alla 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 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 estensibile indipendente dal linguaggio e dalla piattaforma per
la serializzazione dei dati strutturati. Tieni presente quanto segue:
- Per le origini personalizzate o i fornitori di terze parti oppure per gli eventi diretti da Pub/Sub, questa opzione di formattazione non è supportata.
- Un payload 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 limiti di dimensioni dell'evento. Per ulteriori informazioni, vedi Problemi noti.
Le destinazioni di destinazione come Cloud Run Functions, Cloud Run e GKE utilizzano gli eventi nel formato HTTP. Per le destinazioni Workflows, il servizio Workflows converte l'evento in un oggetto JSON e lo passa all'esecuzione del workflow come argomento runtime.
L'utilizzo di un modo standard per descrivere i metadati degli eventi garantisce coerenza, accessibilità e portabilità. I consumer di eventi possono leggere questi eventi direttamente oppure puoi utilizzare le librerie client Cloud in vari linguaggi (tra cui C++, C#, Go, Java, Node.js, PHP, Python e Ruby) per leggere e analizzare gli eventi. 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 compatibile con le versioni precedenti:
- Attributi di filtro facoltativi o attributi di sola visualizzazione
- Campi facoltativi nel 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 trigger è una dichiarazione di interesse per un determinato evento o insieme di eventi. Quando crei un trigger, specifichi i filtri per il trigger che ti consentono di acquisire e intervenire su eventi specifici, incluso il loro routing da un'origine eventi a una destinazione di destinazione. Per saperne di più, consulta la rappresentazione REST di una risorsa trigger e Fornitori ed eventi di destinazione.
Tieni presente che gli abbonamenti Pub/Sub creati per Eventarc vengono mantenuti indipendentemente dall'attività e non scadono. Per modificare le proprietà dell'abbonamento, consulta la sezione Proprietà dell'abbonamento.
Eventarc supporta i trigger per questi tipi di eventi:
Eventi Cloud Audit Logs (CAL) | |
---|---|
Descrizione | Cloud Audit Logs fornisce audit log per l'attività di amministrazione e l'accesso ai dati per ogni progetto, cartella e organizzazione Cloud.
I servizi Google Cloud scrivono le voci in questi log. Puoi creare filtri per i trigger Eventarc utilizzando i valori serviceName e methodName nei log di controllo. Per i valori esatti,
fai riferimento a
Google Cloud servizi con audit log.
Per ulteriori informazioni, vedi
Determinare i filtri eventi per Cloud Audit Logs. |
Tipo di filtro eventi | I trigger 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 del trigger. |
Eventi diretti | |
Descrizione | Eventarc può essere attivato da
vari eventi diretti, ad esempio un aggiornamento di un bucket Cloud Storage, un aggiornamento di un modello Firebase Remote Config o modifiche alle
risorse
sui servizi Google Cloud .
Eventarc può essere attivato anche da messaggi pubblicati negli argomenti Pub/Sub. Pub/Sub è un bus di messaggi distribuito a livello globale che scala automaticamente in base alle esigenze. Poiché Eventarc può essere richiamato dai messaggi su un argomento Pub/Sub, puoi integrarlo con qualsiasi altro servizio che supporti Pub/Sub come destinazione. |
Tipo di filtro eventi | I trigger Eventarc con tipi di filtri per eventi specifici inviano richieste al tuo servizio o flusso di lavoro quando si verifica un evento che corrisponde ai criteri di filtro del trigger; 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 del trigger
Google Cloud 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 regionali 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 del trigger Eventarc in modo che corrisponda alla posizione del servizio Google Cloud che genera eventi ed evitare problemi di rendimento e residenza dei dati causati da un trigger globale.
Puoi specificare le posizioni di attivazione utilizzando un flag --location
con ogni comando.
Per le destinazioni Cloud Run, se non viene specificato un flag --destination-run-region
, si presume che il servizio si trovi nella stessa regione del trigger. Per ulteriori informazioni, consulta il
riferimento di Google Cloud CLI.
Affidabilità e pubblicazione
Le aspettative di consegna sono le seguenti:
- Gli eventi che utilizzano Cloud Audit Logs vengono recapitati in meno di un minuto. (Tieni presente che, sebbene un trigger di Cloud Audit Logs venga creato immediatamente, potrebbero essere necessari fino a due minuti prima che un trigger si propaghi e filtri gli eventi.)
- Gli eventi che utilizzano Pub/Sub vengono recapitati in pochi secondi.
Non è garantita la consegna in ordine di arrivo. Tieni presente che un ordinamento rigoroso comprometterebbe le funzionalità di disponibilità e scalabilità di Eventarc, che corrispondono a quelle del livello di trasporto, Cloud Pub/Sub. Per ulteriori informazioni, consulta la sezione Ordinamento dei messaggi.
Latenza e velocità effettiva sono basate sul "best effort". Variano in base a più fattori, tra cui se il trigger Eventarc è regionale, multiregionale o globale, la configurazione di un servizio specifico e il carico di rete sulle risorse in una regione. Google Cloud
Tieni presente che esistono quote e limiti di utilizzo che si applicano generalmente a Eventarc. Esistono anche quote e limiti di utilizzo specifici per Workflows.
Policy di ripetizione degli eventi
Le caratteristiche di ripetizione dei tentativi di Eventarc corrispondono a quelle del suo livello di trasporto, Cloud Pub/Sub. La durata predefinita di conservazione dei messaggi impostata da Eventarc è di 24 ore con un ritardo di backoff esponenziale.
Puoi aggiornare il criterio di ripetizione tramite la sottoscrizione Pub/Sub associata al trigger Eventarc. Per saperne di più, vedi Eventi di ripetizione.
Osservabilità
Google Cloud Observability fornisce strumenti di monitoraggio, logging e diagnostica. Questi strumenti possono aiutarti a monitorare e analizzare l'attività e la crescita di Eventarc e a comprendere il comportamento, l'integrità e le prestazioni delle tue applicazioni. Per ulteriori informazioni, vedi Osservabilità in Eventarc.
I log dettagliati per Eventarc, Cloud Run, Cloud Run Functions, GKE, Pub/Sub e Workflows sono disponibili in Cloud Audit Logs.
Disaster recovery
Puoi sfruttare zone e regioni per ottenere 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 Progettazione del ripristino di emergenza per interruzioni dell'infrastruttura cloud.
Standard di conformità
Eventarc Standard è conforme a certificazioni e standard specifici. Per evitare di utilizzare risorse Eventarc Advanced non conformi, puoi creare un criterio dell'organizzazione personalizzato che disabilita le risorse Eventarc Advanced. Per maggiori informazioni, vedi Disattivare le risorse Eventarc Advanced.
Passaggi successivi
- Scopri di più sull'elaborazione degli eventi serverless
- Prova il codelab
- Crea un trigger per un fornitore, un tipo di evento e una destinazione specifici
- Risolvere i problemi