Un trigger Eventarc dichiara il tuo interesse per un determinato evento o insieme di eventi. Puoi configurare il routing degli eventi specificando i filtri per il trigger, inclusi l'origine dell'evento e la destinazione di destinazione.
Eventarc invia gli eventi al ricevitore di eventi in un formato CloudEvents tramite una richiesta HTTP.
Queste istruzioni mostrano come configurare il routing degli eventi per tutti i tipi di 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.
I tipi di eventi supportati sono:
Eventi diretti: attivati da un evento non mediato, ad esempio un aggiornamento di un oggetto in un bucket Cloud Storage o un messaggio pubblicato in un argomento Pub/Sub.
Eventi Cloud Audit Logs: attivati quando viene prodotto un log tramite Cloud Audit Logs.
Eventi di terze parti: attivati dagli eventi di un provider non Google che offre un'origine Eventarc.
L'endpoint HTTP interno può essere un indirizzo IP interno o un nome DNS completo (FQDN) per qualsiasi endpoint HTTP nella rete Virtual Private Cloud. Di seguito sono riportati due esempi di possibili destinazioni evento:
- Un'istanza di macchina virtuale (VM) Compute Engine: le istanze Compute Engine possono eseguire le immagini pubbliche per Linux e Windows Server fornite da Google, nonché immagini personalizzate private che puoi creare o importare dai tuoi sistemi esistenti. Per saperne di più, consulta Istanze di macchine virtuali.
- Un bilanciatore del carico interno: un Google Cloud bilanciatore del carico delle applicazioni interno è un bilanciatore del carico di livello 7 regionale e basato su proxy che ti consente di eseguire e scalare i servizi dietro un indirizzo IP interno. I bilanciatori del carico delle applicazioni interni distribuiscono il traffico HTTP e HTTPS ai backend ospitati su Compute Engine, Google Kubernetes Engine (GKE) e Cloud Run. Per maggiori informazioni, consulta la panoramica del bilanciatore del carico delle applicazioni interno.
Una rete VPC è una versione virtuale di una rete fisica implementata all'interno della rete di produzione di Google. Una rete VPC condivisa è una rete VPC definita in un progetto host e resa disponibile come rete condivisa a livello centrale per le risorse idonee nei progetti di servizio collegati.
Un collegamento di rete è una risorsa regionale che ti consente di autorizzare esplicitamente un producer a connettersi a una rete VPC consumer. Per pubblicare eventi, Eventarc utilizza il collegamento di rete per stabilire una connessione all'endpoint HTTP interno ospitato in una rete VPC.
Prima di iniziare
Prima di creare un trigger Eventarc per indirizzare gli eventi a un endpoint HTTP interno in una rete VPC, devi creare un collegamento di rete che accetti le connessioni nella stessa rete e regione contenente il servizio di destinazione HTTP.
Queste istruzioni presuppongono che tu abbia già creato una rete VPC e una subnet e che tu abbia eseguito il deployment del servizio di destinazione HTTP.
Per saperne di più, consulta Ricevere eventi Pub/Sub in un endpoint HTTP interno in una rete VPC, che mostra come eseguire il deployment di un endpoint HTTP interno in una rete VPC e instradare gli eventi Pub/Sub all'endpoint.
Limitazioni note
Di seguito sono riportate le limitazioni note durante il routing degli eventi a un endpoint HTTP interno in una rete VPC:
Non puoi creare più di un trigger Eventarc per lo stesso nome DNS.
Esiste un limite di 100 trigger Eventarc per endpoint HTTP interni per progetto.
Sono supportate solo le seguenti località trigger Eventarc:
asia-east1
europe-north1
europe-west1
us-central1
us-east1
Prepararsi a creare un trigger
Prima di creare un trigger, completa i seguenti prerequisiti:
Console
Nella console Google Cloud , nella pagina del selettore di progetti, seleziona o crea un Google Cloud progetto.
Abilita le API Cloud Logging ed Eventarc.
Se applicabile, abilita l'API relativa agli eventi diretti. Ad esempio, per gli eventi Cloud Run Functions, attiva
cloudfunctions.googleapis.com
.Se non ne hai già uno, crea un account di servizio gestito dall'utente, poi concedigli i ruoli e le autorizzazioni necessari affinché Eventarc possa gestire gli eventi per il servizio di destinazione.
Nella console Google Cloud , vai alla pagina Crea service account.
Seleziona il progetto.
Nel campo Nome account di servizio, inserisci un nome. La console Google Cloud compila il campo ID service account in base a questo nome.
Nel campo Descrizione service account, inserisci una descrizione. Ad esempio,
Service account for event trigger
.Fai clic su Crea e continua.
Per fornire l'accesso appropriato, nell'elenco Seleziona un ruolo, seleziona i ruoli Identity and Access Management (IAM) richiesti da concedere al tuo service account. Per maggiori informazioni, consulta la sezione Ruoli e autorizzazioni per un endpoint HTTP interno in una rete VPC.
Per altri ruoli, fai clic su
Aggiungi un altro ruolo e aggiungi ogni ruolo aggiuntivo.Fai clic su Continua.
Per completare la creazione dell'account, fai clic su Fine.
Se stai creando un trigger per eventi diretti da Cloud Storage, concedi il ruolo Publisher Pub/Sub (
roles/pubsub.publisher
) al service agent Cloud Storage:Nella console Google Cloud vai alla pagina IAM.
Seleziona la casella di controllo Includi concessioni di ruoli fornite da Google.
Nella colonna Entità, trova l'agente di servizio Cloud Storage con il modulo
service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com
, quindi fai clic su Modifica entità nella riga corrispondente.Fai clic su
Aggiungi ruolo o su Aggiungi un altro ruolo.Nell'elenco Seleziona un ruolo, filtra per Pub/Sub Publisher e poi seleziona il ruolo.
Fai clic su Salva.
Se l'URI dell'endpoint HTTP interno nella rete VPC utilizza il nome DNS interno di un servizio risolvibile da Cloud DNS, concedi il ruolo peer DNS (
roles/dns.peer
) nel progetto host VPC all'agente di servizio Eventarc.Tieni presente che, a seconda di come hai configurato la rete VPC, il progetto host VPC potrebbe essere anche il progetto trigger Eventarc.
Nella console Google Cloud , nella pagina del selettore dei progetti, seleziona il progetto host VPC.
Nella console Google Cloud vai alla pagina IAM.
Seleziona la casella di controllo Includi concessioni di ruoli fornite da Google.
Modifica o aggiungi l'agente di servizio Eventarc come entità:
Se l'agente di servizio Eventarc ha già altri ruoli nel progetto, individua la riga contenente l'entità nel formato
service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com
, fai clic su Modifica entità nella riga e fai clic su Aggiungi un altro ruolo.Se l'agente di servizio Eventarc non ha ruoli esistenti nel progetto, fai clic su
Concedi accesso, quindi inserisci l'indirizzo email nel moduloservice-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com
.
Sostituisci
PROJECT_NUMBER
con il numero di progetto Google Cloud del progetto di trigger Eventarc. Puoi trovare il numero di progetto nella pagina Benvenuto della console Google Cloud o eseguendo il seguente comando:gcloud projects describe PROJECT_ID --format='value(projectNumber)'
Nell'elenco Seleziona un ruolo, filtra per Peer DNS, quindi seleziona il ruolo.
Fai clic su Salva.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Abilita le API Cloud Logging, Eventarc e Eventarc Publishing.
gcloud services enable logging.googleapis.com \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com
Se applicabile, abilita l'API correlata agli eventi. Ad esempio, per gli eventi di Cloud Run Functions, attiva
cloudfunctions.googleapis.com
.Se non ne hai già uno, crea un account di servizio gestito dall'utente e concedigli i ruoli e le autorizzazioni necessari affinché Eventarc possa gestire gli eventi per il servizio di destinazione.
Crea l'account di servizio:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Sostituisci
SERVICE_ACCOUNT_NAME
con il nome del account di servizio. Deve essere compreso tra 6 e 30 caratteri e può contenere caratteri alfanumerici minuscoli e trattini. Una volta creato un account di servizio, non puoi modificarne il nome.Concedi i ruoli o le autorizzazioni IAM (Identity and Access Management) richiesti. Per maggiori informazioni, consulta la sezione Ruoli e autorizzazioni per un endpoint HTTP interno in una rete VPC.
Se l'URI dell'endpoint HTTP interno nella rete VPC utilizza il nome DNS interno di un servizio risolvibile da Cloud DNS, concedi il ruolo Peer DNS (
roles/dns.peer
) nel progetto host VPC all'agente di servizio Eventarc.Tieni presente che, a seconda di come hai configurato la rete VPC, il progetto host VPC potrebbe essere anche il progetto trigger Eventarc.
gcloud projects add-iam-policy-binding VPC_HOST_PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com \ --role=roles/dns.peer
Sostituisci quanto segue:
VPC_HOST_PROJECT_ID
: l' Google Cloud ID progetto per il progetto host VPC.PROJECT_NUMBER
: il Google Cloud numero di progetto per il progetto del trigger Eventarc. Puoi trovare il numero di progetto nella pagina Benvenuto della console Google Cloud o eseguendo il seguente comando:
gcloud projects describe PROJECT_ID --format='value(projectNumber)'
Se stai creando un trigger per eventi diretti da Cloud Storage, concedi il ruolo Pub/Sub Publisher (
roles/pubsub.publisher
) sul progetto al service agent Cloud Storage:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com \ --role=roles/pubsub.publisher
Crea un trigger
Puoi creare un trigger Eventarc utilizzando Google Cloud CLI o tramite la console Google Cloud .
Console
- Nella Google Cloud console, vai alla pagina Trigger Eventarc.
- Fai clic su Crea trigger.
- Digita un Nome trigger.
Questo è l'ID del trigger e deve iniziare con una lettera. Può contenere fino a 63 lettere minuscole, numeri o trattini.
- Per Tipo di trigger, seleziona Origini Google o Di terze parti.
- Seleziona un fornitore di eventi.
Questo è il servizio che è l'origine degli eventi. Per un'origine Google, questo avviene direttamente o tramite i relativi audit log.
- A seconda del tipo di evento che stai instradando, esegui una delle
seguenti operazioni:
- Eventi diretti: nell'elenco Tipo di evento, seleziona un tipo di evento tra quelli Diretti.
- Per gli eventi Cloud Pub/Sub diretti, nell'elenco Seleziona un argomento Cloud Pub/Sub, seleziona un argomento o accetta il valore predefinito Nessuno in modo che venga creato un nuovo argomento.
- Per gli eventi diretti di Cloud Storage, specifica o cerca l'identificatore univoco globale del bucket Cloud Storage.
- Eventi dei log di controllo: nell'elenco Tipo di evento, seleziona un tipo di evento tra gli eventi
tramite Cloud Audit Logs, quindi
seleziona una delle seguenti opzioni:
- Qualsiasi risorsa: questa è l'impostazione predefinita e include risorse create dinamicamente con identificatori generati al momento della creazione.
- Risorsa specifica: devi fornire il nome completo della risorsa.
- Pattern del percorso: puoi
filtrare le risorse utilizzando un
pattern del percorso.
Ad esempio, digita
projects/_/buckets/eventarc-bucket/objects/random.txt
o digitaprojects/_/buckets/**/r*.txt
.
- Eventi di terze parti: nell'elenco Canale, seleziona un canale e poi, nell'elenco Tipo di evento, seleziona un evento.
Per ulteriori informazioni, vedi Creare un canale e recuperarne i dettagli.
- Eventi diretti: nell'elenco Tipo di evento, seleziona un tipo di evento tra quelli Diretti.
- Se applicabile al tipo di evento, nell'elenco Tipo di contenuti dei dati evento, seleziona application/json o application/protobuf per specificare la codifica del payload dell'evento.
Tieni presente che un payload evento formattato in JSON è più grande di uno formattato in Protobuf. Ciò potrebbe influire sull'affidabilità a seconda della destinazione dell'evento e dei suoi limiti di dimensione. Per saperne di più, consulta la sezione Problemi noti.
- Se applicabile al fornitore di eventi, fai clic su Aggiungi filtro
e specifica quanto segue:
- Nel campo Attributo 1, a seconda dell'evento diretto che hai scelto, seleziona un ID risorsa che può fungere da filtro per gli eventi.
- Seleziona un operatore:
- Uguale
- Pattern del percorso
Per saperne di più, consulta Informazioni sui pattern di percorso.
- Nel campo Valore attributo 1, a seconda dell'operatore che hai scelto, digita il valore esatto o applica un pattern di percorso.
- Se è applicabile un campo Attributo 2, specifica i valori appropriati.
- Nell'elenco Regione, seleziona una località.
Per evitare problemi di prestazioni e residenza dei dati, la località deve corrispondere a quella del Google Cloud servizio che genera eventi.
Tieni presente che per questa destinazione evento sono supportate solo le seguenti località:
asia-east1
europe-north1
europe-west1
us-east1
Per saperne di più, consulta Località Eventarc.
- Seleziona l'account di servizio che richiamerà il tuo servizio.
In alternativa, puoi creare un nuovo account di servizio.
Specifica l'indirizzo email del account di servizio IAM associato al trigger e a cui hai concesso in precedenza ruoli specifici richiesti da Eventarc.
- Nell'elenco Destinazione evento, seleziona
Endpoint HTTP (interno).
- Specifica l'URI di destinazione. Questo è l'URI dell'endpoint HTTP interno nella rete VPC che riceve gli eventi per il trigger. L'URI può essere un indirizzo IP interno statico nella rete VPC indirizzata dall'allegato di rete o il nome DNS interno di un servizio risolvibile da Cloud DNS.
Se l'endpoint HTTP utilizza un nome DNS interno, Eventarc crea automaticamente zone di peering DNS e inoltra le richieste DNS alle zone DNS nella rete VPC di destinazione. Il peering DNS consente di inviare richieste di record provenienti dallo spazio dei nomi di una zona a un'altra rete VPC. Per saperne di più, consulta Zone di peering e Creare una zona di peering.
Tieni presente che non puoi creare più di un trigger per lo stesso nome DNS.
- Nell'elenco Collegamento di rete, seleziona un identificatore
per la risorsa di collegamento di rete. Questo identificatore viene generato dopo
la creazione di un collegamento di rete. Per ulteriori informazioni, vedi
Creare collegamenti di rete.
I collegamenti di rete consentono alle reti VPC del producer di servizi di avviare connessioni alle reti VPC consumer. Eventarc utilizza il collegamento di rete per stabilire una connessione all'endpoint HTTP interno ospitato nella rete VPC del consumer e pubblicare eventi.
Quando crei un collegamento di rete, puoi autorizzare esplicitamente una connessione tramite gli elenchi di accettazione e rifiuto del producer; in ogni caso, Eventarc può aggiornare l'elenco di accettazione di un collegamento di rete con l'ID progetto appropriato e senza alcun intervento da parte tua.
- Specifica l'URI di destinazione. Questo è l'URI dell'endpoint HTTP interno nella rete VPC che riceve gli eventi per il trigger. L'URI può essere un indirizzo IP interno statico nella rete VPC indirizzata dall'allegato di rete o il nome DNS interno di un servizio risolvibile da Cloud DNS.
- Fai clic su Crea.
Una volta creato un trigger, i filtri dell'origine eventi non possono essere modificati. Crea invece un nuovo trigger ed elimina quello precedente. Per saperne di più, consulta Gestire i trigger.
gcloud
Puoi creare un trigger eseguendo un comando gcloud eventarc triggers create
insieme ai flag obbligatori e facoltativi.
Eventi diretti
gcloud eventarc triggers create TRIGGER \ --location=LOCATION \ --destination-http-endpoint-uri=ENDPOINT_URI \ --network-attachment=NETWORK_ATTACHMENT_ID \ --event-filters="type=EVENT_FILTER_TYPE" \ --event-filters="COLLECTION_ID=RESOURCE_ID" \ --event-filters-path-pattern="COLLECTION_ID=PATH_PATTERN" \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"
Sostituisci quanto segue:
TRIGGER
: l'ID del trigger o un identificatore completamente qualificato.LOCATION
: la posizione del trigger Eventarc. In alternativa, puoi impostare la proprietàeventarc/location
, ad esempiogcloud config set eventarc/location us-central1
.Per evitare problemi di prestazioni e residenza dei dati, la posizione deve corrispondere a quella del servizio Google Cloud che genera eventi.
Tieni presente che per questa destinazione evento sono supportate solo le seguenti località:
asia-east1
europe-north1
europe-west1
us-central1
us-east1
Per saperne di più, consulta Località Eventarc.
ENDPOINT_URI
: l'URI dell'endpoint HTTP interno nella rete VPC che riceve gli eventi per il trigger. L'URI può essere un indirizzo IP interno statico nella rete VPC indirizzata dall'allegato di rete o il nome DNS interno di un servizio risolvibile da Cloud DNS.Se l'endpoint HTTP utilizza un nome DNS interno, Eventarc crea automaticamente zone di peering DNS e inoltra le richieste DNS alle zone DNS nella rete VPC di destinazione. Il peering DNS consente di inviare richieste di record provenienti dallo spazio dei nomi di una zona a un'altra rete VPC. Per saperne di più, consulta Zone di peering e Creare una zona di peering.
Tieni presente che non puoi creare più di un trigger per lo stesso nome DNS.
NETWORK_ATTACHMENT_ID
: identificatore univoco per la risorsa di collegamento di rete. L'identificatore viene generato dopo la creazione di un collegamento di rete. Per ulteriori informazioni, vedi Creare collegamenti di rete.I collegamenti di rete consentono alle reti VPC del producer di servizi di avviare connessioni alle reti VPC consumer. Eventarc utilizza il collegamento di rete per stabilire una connessione all'endpoint HTTP interno ospitato nella rete VPC del consumer e pubblicare eventi.
Quando crei un collegamento di rete, puoi autorizzare esplicitamente una connessione tramite gli elenchi di accettazione e rifiuto del producer; in ogni caso, Eventarc può aggiornare l'elenco di accettazione di un collegamento di rete con l'ID progetto appropriato e senza alcun intervento da parte tua.
EVENT_FILTER_TYPE
: l'identificatore dell'evento. Viene generato un evento quando una chiamata API per il metodo ha esito positivo. Per le operazioni a lunga esecuzione, l'evento viene generato solo al termine dell'operazione e solo se l'azione viene eseguita correttamente. Consulta l'elenco dei tipi di eventi diretti supportati.COLLECTION_ID
(facoltativo): il componente resource che può fungere da filtro eventi; ad esempio, per Cloud Run Functions, questo èfunction
.RESOURCE_ID
: l'identificatore della risorsa utilizzata come valore di filtro per la raccolta associata. Per ulteriori informazioni, consulta ID risorsa.PATH_PATTERN
: il pattern del percorso da applicare durante il filtraggio della risorsa.SERVICE_ACCOUNT_NAME
: il nome del tuo account di servizio gestito dall'utente.PROJECT_ID
: il tuo ID progetto Google Cloud .
Note:
- Il flag
--event-filters="type=EVENT_FILTER_TYPE"
è obbligatorio. Se non è impostato alcun altro filtro eventi, vengono abbinati gli eventi per tutte le risorse. EVENT_FILTER_TYPE
non può essere modificato dopo la creazione. Per modificareEVENT_FILTER_TYPE
, crea un nuovo trigger ed elimina quello precedente.- Ogni attivatore può avere più filtri evento, separati da virgole in un unico
--event-filters
=[ATTRIBUTE
=VALUE
,...] flag oppure puoi ripetere il flag per aggiungere altri filtri. Solo gli eventi che corrispondono a tutti i filtri vengono inviati alla destinazione. I caratteri jolly e le espressioni regolari non sono supportati. Tuttavia, quando utilizzi il flag--event-filters-path-pattern
, puoi definire un pattern del percorso della risorsa. - Il flag
--service-account
viene utilizzato per specificare l'email delaccount di serviziot IAM associato al trigger.
Esempio:
gcloud eventarc triggers create helloworld-trigger \ --location=us-central1 \ --destination-http-endpoint-uri=http://my-vm.us-central1-a.c.my-project.internal \ --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment-name" \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \ --service-account=my-service-account@my-project.iam.gserviceaccount.com
Eventi audit log
gcloud eventarc triggers create TRIGGER \ --location=LOCATION \ --destination-http-endpoint-uri=ENDPOINT_URI \ --network-attachment=NETWORK_ATTACHMENT_ID \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=SERVICE_NAME" \ --event-filters="methodName=METHOD_NAME" \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"
Sostituisci quanto segue:
TRIGGER
: l'ID del trigger o un identificatore completamente qualificato.LOCATION
: la posizione del trigger Eventarc. In alternativa, puoi impostare la proprietàeventarc/location
; ad esempio,gcloud config set eventarc/location us-central1
.Per evitare problemi di prestazioni e residenza dei dati, la posizione deve corrispondere a quella del servizio Google Cloud che genera eventi. Sono supportate le seguenti località:
asia-east1
europe-north1
europe-west1
us-central1
us-east1
Per saperne di più, consulta Località Eventarc.
ENDPOINT_URI
: l'URI dell'endpoint HTTP interno nella rete VPC che riceve gli eventi per il trigger. L'URI può essere un indirizzo IP interno statico nella rete VPC indirizzata dall'allegato di rete o il nome DNS interno di un servizio risolvibile da Cloud DNS.Se l'endpoint HTTP utilizza un nome DNS interno, Eventarc crea automaticamente zone di peering DNS e inoltra le richieste DNS alle zone DNS nella rete VPC di destinazione. Il peering DNS consente di inviare richieste di record provenienti dallo spazio dei nomi di una zona a un'altra rete VPC. Per saperne di più, consulta Zone di peering e Creare una zona di peering.
Tieni presente che non puoi creare più di un trigger per lo stesso nome DNS.
NETWORK_ATTACHMENT_ID
: identificatore univoco per la risorsa di collegamento di rete. L'identificatore viene generato dopo la creazione di un collegamento di rete. Per ulteriori informazioni, vedi Creare collegamenti di rete.I collegamenti di rete consentono alle reti VPC del producer di servizi di avviare connessioni alle reti VPC consumer. Eventarc utilizza il collegamento di rete per stabilire una connessione all'endpoint HTTP interno ospitato nella rete VPC del consumer e pubblicare eventi.
Quando crei un collegamento di rete, puoi autorizzare esplicitamente una connessione tramite gli elenchi di accettazione e rifiuto del producer; in ogni caso, Eventarc può aggiornare l'elenco di accettazione di un collegamento di rete con l'ID progetto appropriato e senza alcun intervento da parte tua.
SERVICE_NAME
: l'identificatore del Google Cloud servizio. Consulta l'elenco dei tipi di eventi del log di controllo supportati.METHOD_NAME
: l'identificatore dell'operazione. Consulta l'elenco dei tipi di eventi del log di controllo supportati.SERVICE_ACCOUNT_NAME
: il nome del tuo account di servizio gestito dall'utente.PROJECT_ID
: il tuo ID progetto Google Cloud .
Note:
- I seguenti flag sono obbligatori:
--event-filters="type=google.cloud.audit.log.v1.written"
--event-filters="serviceName=VALUE"
--event-filters="methodName=VALUE"
- (Facoltativo) Filtra gli eventi per una risorsa specifica utilizzando il flag
--event-filters="resourceName=VALUE"
e specificando il percorso completo della risorsa. Ometti il flag per le risorse create dinamicamente che hanno identificatori generati al momento della creazione. In alternativa, filtra gli eventi per un insieme di risorse utilizzando il flag--event-filters-path-pattern="resourceName=VALUE"
e specificando il pattern del percorso della risorsa. - Ogni attivatore può avere più filtri evento, separati da virgole in un unico
--event-filters
=[ATTRIBUTE
=VALUE
,...] flag oppure puoi ripetere il flag per aggiungere altri filtri. Solo gli eventi che corrispondono a tutti i filtri vengono inviati alla destinazione. I caratteri jolly e le espressioni regolari non sono supportati. Tuttavia, quando utilizzi il flag--event-filters-path-pattern
, puoi definire un pattern del percorso della risorsa. - Una volta creato un trigger, non è possibile modificare il tipo di filtro eventi. Per un tipo di evento diverso, devi creare un nuovo trigger.
- Il flag
--service-account
viene utilizzato per specificare l'email delaccount di serviziot IAM associato al trigger.
Esempio:
gcloud eventarc triggers create helloworld-trigger \ --location=us-central1 \ --destination-http-endpoint-uri=http://10.10.10.2 \ --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment" \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=eventarc.googleapis.com" \ --event-filters="methodName=google.cloud.eventarc.v1.Eventarc.GetTrigger" \ --event-filters="resourceName=projects/my-project/locations/us-central1/triggers/my-trigger" \ --service-account=my-service-account@my-project.iam.gserviceaccount.com
Eventi di terze parti
gcloud eventarc triggers create TRIGGER \ --location=LOCATION \ --destination-http-endpoint-uri=ENDPOINT_URI \ --network-attachment=NETWORK_ATTACHMENT_ID \ --event-filters="type=EVENT_FILTER_TYPE" \ --channel=CHANNEL_NAME \ --project=PROJECT_ID \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"
Sostituisci quanto segue:
TRIGGER
: l'ID del trigger o un identificatore completamente qualificato.LOCATION
: la posizione del trigger Eventarc. In alternativa, puoi impostare la proprietàeventarc/location
, ad esempiogcloud config set eventarc/location us-central1
.Per evitare problemi di prestazioni e residenza dei dati, la posizione deve corrispondere a quella del servizio Google Cloud che genera eventi.
Tieni presente che per questa destinazione evento sono supportate solo le seguenti località:
asia-east1
europe-north1
europe-west1
us-central1
us-east1
Per saperne di più, consulta Località Eventarc.
ENDPOINT_URI
: l'URI dell'endpoint HTTP interno nella rete VPC che riceve gli eventi per il trigger. L'URI può essere un indirizzo IP interno statico nella rete VPC indirizzata dall'allegato di rete o il nome DNS interno di un servizio risolvibile da Cloud DNS.Se l'endpoint HTTP utilizza un nome DNS interno, Eventarc crea automaticamente zone di peering DNS e inoltra le richieste DNS alle zone DNS nella rete VPC di destinazione. Il peering DNS consente di inviare richieste di record provenienti dallo spazio dei nomi di una zona a un'altra rete VPC. Per saperne di più, consulta Zone di peering e Creare una zona di peering.
Tieni presente che non puoi creare più di un trigger per lo stesso nome DNS.
NETWORK_ATTACHMENT_ID
: identificatore univoco per la risorsa di collegamento di rete. L'identificatore viene generato dopo la creazione di un collegamento di rete. Per ulteriori informazioni, vedi Creare collegamenti di rete.I collegamenti di rete consentono alle reti VPC del producer di servizi di avviare connessioni alle reti VPC consumer. Eventarc utilizza il collegamento di rete per stabilire una connessione all'endpoint HTTP interno ospitato nella rete VPC del consumer e pubblicare eventi.
Quando crei un collegamento di rete, puoi autorizzare esplicitamente una connessione tramite gli elenchi di accettazione e rifiuto del producer; in ogni caso, Eventarc può aggiornare l'elenco di accettazione di un collegamento di rete con l'ID progetto appropriato e senza alcun intervento da parte tua.
EVENT_FILTER_TYPE
: il tipo di evento supportato dal fornitore.CHANNEL_NAME
: un nome per il canale. Per ulteriori informazioni, vedi Creare un canale e recuperarne i dettagli.PROJECT_ID
: il tuo ID progetto Google Cloud .SERVICE_ACCOUNT_NAME
: il nome del tuo account di servizio gestito dall'utente.
Note:
- Il flag
--event-filters="type=EVENT_FILTER_TYPE"
è obbligatorio. Se non è impostato alcun altro filtro eventi, vengono abbinati gli eventi per tutte le risorse. EVENT_FILTER_TYPE
non può essere modificato dopo la creazione. Per modificareEVENT_FILTER_TYPE
, crea un nuovo trigger ed elimina quello precedente.- Ogni attivatore può avere più filtri evento, separati da virgole in un unico
--event-filters
=[ATTRIBUTE
=VALUE
,...] flag oppure puoi ripetere il flag per aggiungere altri filtri. Solo gli eventi che corrispondono a tutti i filtri vengono inviati alla destinazione. I caratteri jolly e le espressioni regolari non sono supportati. - Il flag
--service-account
viene utilizzato per specificare l'email delaccount di serviziot IAM associato al trigger.
Esempio:
gcloud eventarc triggers create helloworld-trigger \ --location=us-central1 \ --destination-http-endpoint-uri=http://my-vm.us-central1-a.c.my-project.internal \ --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment-name" \ --event-filters="type=third-party-event-type" \ --channel=my-channel \ --project=my-project-ID \ --service-account=my-service-account@my-project.iam.gserviceaccount.com
Elenca un trigger
Puoi confermare la creazione di un trigger elencando i trigger Eventarc utilizzando Google Cloud CLI o tramite la console Google Cloud .
Console
Nella Google Cloud console, vai alla pagina Trigger Eventarc.
Questa pagina elenca i trigger in tutte le posizioni e include dettagli quali nomi, regioni, fornitori di eventi, destinazioni e altro ancora.
Per filtrare i trigger:
- Fai clic su Filtro o sul campo Trigger del filtro.
- Nell'elenco Proprietà, seleziona un'opzione per filtrare gli attivatori.
Puoi selezionare una singola proprietà o utilizzare l'operatore logico
OR
per aggiungere altre proprietà.Per ordinare i trigger, fai clic su
Ordina accanto a un'intestazione di colonna supportata.
gcloud
Esegui questo comando per elencare i trigger:
gcloud eventarc triggers list --location=-
Questo comando elenca i trigger in tutte le posizioni e include dettagli come nomi, tipi, destinazioni e stati.
Passaggi successivi
- Panoramica di Eventarc
- Gestire i trigger
- Tutorial: ricevi eventi Pub/Sub in un endpoint HTTP interno in una rete VPC
- Tutorial: ricevi eventi Pub/Sub in un endpoint HTTP privato in un cluster GKE privato