Crea un trigger per Google Kubernetes Engine (GKE)

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Un trigger Eventarc dichiara il tuo interesse per un determinato evento o un insieme di eventi. Puoi configurare il routing degli eventi specificando filtri per il trigger, tra cui l'origine evento e il servizio Google Kubernetes Engine di destinazione o il servizio Cloud Run for Anthos in esecuzione in un cluster GKE.

Le richieste al tuo servizio vengono attivate dai seguenti tipi di eventi:

Prima di iniziare

Devi abilitare Workload Identity nel cluster GKE su cui è in esecuzione il servizio di destinazione. Workload Identity è necessario per configurare correttamente lo inoltro degli eventi ed è il metodo consigliato per accedere ai servizi Google Cloud dalle applicazioni in esecuzione all'interno di GKE grazie alle sue proprietà di sicurezza e alla gestibilità migliorate.

Eventi Eventarc nell'architettura di destinazioni GKE

Workload Identity

Le applicazioni in esecuzione su GKE potrebbero dover accedere alle API Google Cloud. Workload Identity consente a un account di servizio Kubernetes nel tuo cluster GKE di agire come account di servizio IAM. I pod che utilizzano l'account di servizio Kubernetes configurato autenticano automaticamente come account di servizio IAM quando accedono alle API Google Cloud. L'uso di Workload Identity ti consente di assegnare identità e autorizzazioni distinte e granulari per ogni applicazione nel tuo cluster. Tieni presente che devi concedere autorizzazioni specifiche all'account di servizio del trigger Eventarc. In questo documento, vedi Creare un account di servizio.

Workload Identity è necessario anche per inoltrare gli eventi Cloud Run for Anthos utilizzando Eventarc. Per saperne di più sull'abilitazione e sulla configurazione di Workload Identity nei tuoi cluster GKE, consulta Utilizzare Workload Identity.

Inoltratore eventi

L'inoltro degli eventi di Eventarc estrae i nuovi eventi da Eventarc e li inoltra alla destinazione GKE. Questo componente funge da mediatore tra il livello di trasporto Pub/Sub e il servizio GKE. Funziona sui servizi esistenti e supporta anche i servizi di segnalazione (inclusi quelli non esposti all'esterno del cluster completamente gestito) semplificando al contempo la configurazione e la manutenzione. A livello di rete, per ricevere eventi in un servizio GKE non è necessario aprire il servizio su traffico esterno poiché tutti gli eventi vengono distribuiti da un'origine che si trova all'interno dello stesso cluster GKE.

Tieni presente che il ciclo di vita dell'inoltro dell'evento è gestito da Eventarc e se elimini accidentalmente l'inoltro dell'evento, Eventarc ripristinerà questo componente.

Per ogni trigger che punta a una destinazione GKE, l'inoltro dell'evento (un pod gke-forwarder configurato in modo specifico) esegue queste operazioni:

  1. Utilizza l'API Pub/Sub per aprire una connessione StreamingPull al trasportatore trigger (un argomento Pub/Sub e sottoscrizione) e riceve gli eventi non appena disponibili.

  2. Trasforma gli eventi nel formato CloudEvents corretto e li codifica e li invia come una richiesta HTTP POST al servizio GKE di destinazione.

L'agente di servizio Eventarc ha bisogno dell'autorizzazione per eseguire e aggiornare regolarmente l'istanza gke-forwarder. Questa autorizzazione deve essere concessa una volta per progetto. Per maggiori dettagli, consulta l'articolo Attivare le destinazioni GKE in questo documento.

Preparati a creare un trigger

Per ogni trigger che ha come target un servizio GKE, Eventarc crea un componente di inoltro eventi. Eventarc richiede le autorizzazioni per installare il componente e gestire le risorse nel cluster GKE. Prima di creare un trigger Eventarc per le destinazioni GKE, assicurati di completare le attività seguenti.

Abilita l'API Eventarc

Per visualizzare e assegnare i ruoli IAM (Identity and Access Management), devi abilitare l'API Eventarc per il tuo progetto. Non potrai visualizzare i ruoli Eventarc in Google Cloud Console finché non abiliti l'API.

gcloud services enable eventarc.googleapis.com

Concedi il ruolo utente richiesto

Concedi il ruolo di amministratore Eventarc (roles/eventarc.admin) all'utente:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=PRINCIPAL \
    --role="roles/eventarc.admin"

Sostituisci i seguenti valori:

  • PROJECT_ID: l'ID progetto Google Cloud.
  • PRINCIPAL: l'entità a cui aggiungere l'associazione. Deve essere user|group|serviceAccount:email o domain:domain.

    Esempi: user:test-user@gmail.com, group:admins@example.com, serviceAccount:test123@example.domain.com o domain:example.domain.com

Crea un account di servizio

Crea un account di servizio gestito dall'utente se non ne hai già uno, quindi assegnagli i ruoli e le autorizzazioni necessari in modo che Eventarc possa gestire gli eventi per le destinazioni GKE.

  1. Crea un account di servizio utilizzato durante la creazione dei trigger:

    TRIGGER_SA=SA_NAME
    gcloud iam service-accounts create ${TRIGGER_SA}

    Sostituisci SA_NAME con il nome dell'account di servizio. Deve essere compreso tra 6 e 30 caratteri e può contenere caratteri alfanumerici minuscoli e trattini. Dopo aver creato un account di servizio, non puoi modificarne il nome.

  2. Concedi i ruoli appropriati all'account di servizio:

    Eventi di Cloud Audit Logs

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:${TRIGGER_SA}@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/pubsub.subscriber"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:${TRIGGER_SA}@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/monitoring.metricWriter"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:${TRIGGER_SA}@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/eventarc.eventReceiver"
    

    Eventi diretti

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:${TRIGGER_SA}@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/pubsub.subscriber"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:${TRIGGER_SA}@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/monitoring.metricWriter"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:${TRIGGER_SA}@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/eventarc.eventReceiver"
    

    Messaggi Pub/Sub

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:${TRIGGER_SA}@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/pubsub.subscriber"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:${TRIGGER_SA}@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/monitoring.metricWriter"
    
    

    Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud. Puoi trovare il tuo ID progetto nella pagina Dashboard di Google Cloud Console.

  3. Se stai creando un trigger per un evento Cloud Storage diretto, concedi il ruolo pubsub.publisher all'account di servizio Cloud Storage:

    SERVICE_ACCOUNT="$(gsutil kms serviceaccount -p PROJECT_ID)"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:${SERVICE_ACCOUNT}" \
        --role="roles/pubsub.publisher"
    

Abilita destinazioni GKE

Per consentire a Eventarc di gestire le risorse nel cluster GKE, abilita le destinazioni GKE e associa l'account di servizio Eventarc ai ruoli richiesti.

  1. Abilita destinazioni GKE per Eventarc:

    gcloud eventarc gke-destinations init
    
  2. Al momento dell'associazione dei ruoli richiesti, inserisci y.

    Sono collegati i seguenti ruoli:

    • roles/compute.viewer
    • roles/container.developer
    • roles/iam.serviceAccountAdmin

Crea un trigger utilizzando Google Cloud CLI

Puoi creare un trigger eseguendo un comando gcloud eventarc triggers create insieme ai flag obbligatori e facoltativi.

Eventi di Cloud Audit Logs

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
    --destination-gke-location=DESTINATION_GKE_LOCATION \
    --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
    --destination-gke-service=DESTINATION_GKE_SERVICE \
    --destination-gke-path=DESTINATION_GKE_PATH \
    --event-filters="type=google.cloud.audit.log.v1.written" \
    --event-filters="serviceName=SERVICE_NAME" \
    --event-filters="methodName=METHOD_NAME" \
    --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Sostituisci quanto segue:

  • TRIGGER: l'ID del trigger o un identificatore completo.
  • LOCATION: la posizione del trigger Eventarc. Per evitare problemi di prestazioni e residenza dei dati causati da un trigger globale, deve corrispondere alla località del servizio Google Cloud che genera gli eventi. In alternativa, puoi impostare la proprietà eventarc/location, ad esempio gcloud config set eventarc/location us-central1. Per scoprire di più, consulta le località di Eventarc.
  • DESTINATION_GKE_CLUSTER: il nome del cluster GKE in cui è in esecuzione il servizio GKE di destinazione che riceve gli eventi.
  • DESTINATION_GKE_LOCATION: la località in cui può essere trovato il servizio GKE di destinazione. Se non viene specificato, si presume che il servizio si trovi nella stessa area geografica del trigger. Per maggiori informazioni, consulta Località di Cloud Run for Anthos su Google Cloud.
  • DESTINATION_GKE_NAMESPACE: lo spazio dei nomi in cui è in esecuzione il servizio GKE di destinazione. Se non è specificato, viene utilizzato lo spazio dei nomi default.
  • DESTINATION_GKE_SERVICE: il nome del servizio GKE che riceve gli eventi per il trigger. Il servizio può trovarsi in una qualsiasi delle località supportate da GKE e non deve trovarsi nella stessa località del trigger. Tuttavia, il servizio deve essere nello stesso progetto del trigger e riceverà eventi come richieste POST HTTP inviate al suo percorso dell'URL principale (/), ogni volta che l'evento viene generato.
  • (Facoltativo) DESTINATION_GKE_PATH: il percorso relativo specificato sul servizio GKE di destinazione a cui devono essere inviati gli eventi per il trigger. Ad esempio: /, /route, route, route/subroute.
  • SERVICE_NAME: l'identificatore del servizio Google Cloud
  • METHOD_NAME: l'identificatore dell'operazione.
  • TRIGGER_SERVICE_ACCOUNT: l'indirizzo email dell'account di servizio IAM associato all'attivatore e a cui in precedenza hai concesso ruoli specifici richiesti da Eventarc. Ad esempio, $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com
  • PROJECT_ID: il tuo ID progetto Google Cloud

Note

  • Questi flag sono obbligatori:
    • --event-filters="type=google.cloud.audit.log.v1.written"
    • --event-filters="serviceName=VALUE"
    • --event-filters="methodName=VALUE"
  • Una volta creato un trigger, --event-filters="type=google.cloud.audit.log.v1.written" non può essere modificato. Per un tipo di evento diverso, devi creare un nuovo attivatore.
  • Per un elenco degli eventi del log di controllo supportati da Eventarc, inclusi i valori serviceName e methodName, consulta Eventi supportati da Eventarc.
  • Ogni attivatore può avere più filtri evento, delimitati da virgole in un --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. Vedi Determinazione dei filtri eventi per Cloud Audit Logs.
  • Facoltativamente, puoi filtrare gli eventi in base a 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 con identificatori generati al momento della creazione. In alternativa, puoi filtrare gli eventi per un set di risorse utilizzando il flag --event-filters-path-pattern="resourceName=VALUE" e specificando il pattern del percorso della risorsa.

Esempio:

  gcloud eventarc triggers create cal-gke-trigger \
      --location=us-central1 \
      --destination-gke-cluster=gke-events-cluster \
      --destination-gke-location=us-central1-a \
      --destination-gke-namespace=default \
      --destination-gke-service=helloworld-events \
      --destination-gke-path=/ \
      --event-filters="type=google.cloud.audit.log.v1.written" \
      --event-filters="serviceName=storage.googleapis.com" \
      --event-filters="methodName=storage.buckets.update" \
      --event-filters="resourceName=projects/_/buckets/eventarc-bucket/objects/random.txt" \
      --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

Viene creato un trigger denominato cal-gke-trigger per gli audit log scritti da storage.googleapis.com e per l'operazione identificata come storage.buckets.update.

Eventi diretti

Cloud Storage

gcloud eventarc triggers create TRIGGER \
  --location=LOCATION \
  --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
  --destination-gke-location=DESTINATION_GKE_LOCATION \
  --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
  --destination-gke-service=DESTINATION_GKE_SERVICE \
  --destination-gke-path=DESTINATION_GKE_PATH \
  --event-filters="type=EVENT_FILTER_TYPE" \
  --event-filters="bucket=BUCKET" \
  --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Sostituisci quanto segue:

  • TRIGGER: l'ID del trigger o un identificatore completo.
  • LOCATION: la posizione del trigger Eventarc. Il bucket Cloud Storage deve risiedere nello stesso progetto Google Cloud e nella sua regione o area geografica del trigger Eventarc. In alternativa, puoi impostare la proprietà eventarc/location, ad esempio gcloud config set eventarc/location us-central1. Per scoprire di più, consulta le località di Eventarc.
  • DESTINATION_GKE_CLUSTER: il nome del cluster GKE in cui è in esecuzione il servizio GKE di destinazione che riceve gli eventi.
  • DESTINATION_GKE_LOCATION: la località in cui può essere trovato il servizio GKE di destinazione. Se non viene specificato, si presume che il servizio si trovi nella stessa area geografica del trigger. Per maggiori informazioni, consulta Località di Cloud Run for Anthos su Google Cloud.
  • DESTINATION_GKE_NAMESPACE: lo spazio dei nomi in cui è in esecuzione il servizio GKE di destinazione. Se non è specificato, viene utilizzato lo spazio dei nomi default.
  • DESTINATION_GKE_SERVICE: il nome del servizio GKE che riceve gli eventi per il trigger. Il servizio può trovarsi in una qualsiasi delle località supportate da GKE e non deve trovarsi nella stessa località del trigger. Tuttavia, il servizio deve essere nello stesso progetto del trigger e riceverà eventi come richieste POST HTTP inviate al suo percorso dell'URL principale (/), ogni volta che l'evento viene generato.
  • (Facoltativo) DESTINATION_GKE_PATH: il percorso relativo specificato sul servizio GKE di destinazione a cui devono essere inviati gli eventi per il trigger. Ad esempio: /, /route, route, route/subroute.
  • EVENT_FILTER_TYPE: l'identificatore dell'evento Cloud Storage e può essere uno dei seguenti:
    • google.cloud.storage.object.v1.finalized: l'evento viene inviato quando viene creato un nuovo oggetto (o viene sovrascritto un oggetto esistente e viene creata una nuova generazione di tale oggetto) nel bucket
    • google.cloud.storage.object.v1.archived: l'evento viene inviato quando una versione live di un oggetto viene archiviata o eliminata. Questo evento viene inviato solo per i bucket di controllo delle versioni.
    • google.cloud.storage.object.v1.deleted: l'evento viene inviato quando un oggetto viene eliminato definitivamente. A seconda dell'impostazione di controllo delle versioni degli oggetti per un bucket:
      • Per i bucket di controllo delle versioni, questo viene inviato solo quando una versione viene eliminata definitivamente (ma non quando un oggetto è archiviato).
      • Per i bucket che non utilizzano il controllo delle versioni, questo viene inviato quando un oggetto viene eliminato o sovrascritto.
    • google.cloud.storage.object.v1.metadataUpdated: l'evento viene inviato quando i metadati di un oggetto esistente cambiano.
  • BUCKET è l'identificatore univoco globale del bucket Cloud Storage.
  • TRIGGER_SERVICE_ACCOUNT: l'indirizzo email dell'account di servizio IAM associato all'attivatore e a cui in precedenza hai concesso ruoli specifici richiesti da Eventarc. Ad esempio, $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com
  • PROJECT_ID: il tuo ID progetto Google Cloud

Note

  • Questi flag sono obbligatori:
    • --event-filters="type=EVENT_FILTER_TYPE"
    • --event-filters="bucket=BUCKET"
  • Una volta creato un trigger, EVENT_FILTER_TYPE non può essere modificato. Per un tipo di evento diverso, devi creare un nuovo attivatore.
  • Gli eventi vengono distribuiti utilizzando notifiche Pub/Sub da Cloud Storage. La configurazione di troppe notifiche registrate per lo stesso bucket potrebbe esaurire il limite di notifiche per il bucket, come indicato dall'errore Cloud Storage bucket ...: Pub/Sub notification limit reached. Il bucket può avere fino a 10 configurazioni di notifica impostate per attivare un evento specifico. Visualizza altre quote e limitazioni nella pagina Quote e limiti di Cloud Storage.
  • Ogni attivatore può avere più filtri evento, delimitati da virgole in un --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'indirizzo email dell'account di servizio Identity and Access Management (IAM) associato al trigger.
  • (Facoltativo) DESTINATION_GKE_PATH: il percorso relativo specificato sul servizio GKE di destinazione a cui devono essere inviati gli eventi per il trigger. Ad esempio: /, /route, route, route/subroute.

Esempio:

gcloud eventarc triggers create storage-gke-trigger \
    --location=us-central1 \
    --destination-gke-cluster=gke-events-cluster \
    --destination-gke-location=us-central1-a \
    --destination-gke-namespace=default \
    --destination-gke-service=helloworld-events \
    --destination-gke-path=/ \
    --event-filters="type=google.cloud.storage.object.v1.finalized" \
    --event-filters="bucket=my-project-bucket" \
    --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

Questo comando crea un trigger denominato storage-gke-trigger per il bucket Cloud Storage my-project-bucket e l'evento identificato come google.cloud.storage.object.v1.finalized.

Avvisi Firebase

gcloud eventarc triggers create TRIGGER \
  --location=global \
  --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
  --destination-gke-location=DESTINATION_GKE_LOCATION \
  --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
  --destination-gke-service=DESTINATION_GKE_SERVICE \
  --destination-gke-path=DESTINATION_GKE_PATH \
  --event-filters="type=google.firebase.firebasealerts.alerts.v1.published" \
  --event-filters="alerttype=ALERT_TYPE" \
  --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Sostituisci quanto segue:

  • TRIGGER: l'ID del trigger o un identificatore completo.
  • DESTINATION_GKE_CLUSTER: il nome del cluster GKE in cui è in esecuzione il servizio GKE di destinazione che riceve gli eventi.
  • DESTINATION_GKE_LOCATION: la località in cui può essere trovato il servizio GKE di destinazione. Se non viene specificato, si presume che il servizio si trovi nella stessa area geografica del trigger. Per maggiori informazioni, consulta Località di Cloud Run for Anthos su Google Cloud.
  • DESTINATION_GKE_NAMESPACE: lo spazio dei nomi in cui è in esecuzione il servizio GKE di destinazione. Se non è specificato, viene utilizzato lo spazio dei nomi default.
  • DESTINATION_GKE_SERVICE: il nome del servizio GKE che riceve gli eventi per il trigger. Il servizio può trovarsi in una qualsiasi delle località supportate da GKE e non deve trovarsi nella stessa località del trigger. Tuttavia, il servizio deve essere nello stesso progetto del trigger e riceverà eventi come richieste POST HTTP inviate al suo percorso dell'URL principale (/), ogni volta che l'evento viene generato.
  • (Facoltativo) DESTINATION_GKE_PATH: il percorso relativo specificato sul servizio GKE di destinazione a cui devono essere inviati gli eventi per il trigger. Ad esempio: /, /route, route, route/subroute.
  • ALERT_TYPE è il tipo di avviso Firebase e può essere uno dei seguenti:
    • appDistribution.inAppFeedback: l'evento viene inviato quando un tester invia un feedback in-app per una determinata app
    • appDistribution.newTesterIosDevice: l'evento viene inviato quando un nuovo dispositivo tester iOS è registrato per una determinata app
    • billing.planAutomatedUpdate: l'evento viene inviato quando il piano di fatturazione per un progetto Firebase viene aggiornato automaticamente, ad esempio quando viene eseguito il downgrade del piano a causa di problemi di pagamento.
    • billing.planUpdate: l'evento viene inviato quando il piano di fatturazione di un progetto Firebase viene modificato da un utente, ad esempio quando un account di fatturazione è collegato o scollegato da un progetto.
    • crashlytics.newAnrIssue: l'evento viene inviato quando un'app riscontra una nuova applicazione che non risponde (ANR) (non per eventi successivi identici)
    • crashlytics.newFatalIssue: viene inviato un evento quando un'app riceve un nuovo arresto anomalo (non per eventi identici successivi).
    • crashlytics.newNonfatalIssue: viene inviato un evento quando un'app riscontra un nuovo errore non irreversibile (non per eventi successivi identici).
    • crashlytics.regression: l'evento viene inviato quando un'app riscontra un arresto anomalo per un problema contrassegnato come chiuso per una versione precedente dell'app.
    • crashlytics.stabilityDigest: l'evento viene inviato in caso di notifica dei problemi di tendenza più comuni in Crashlytics
    • crashlytics.velocity: l'evento viene inviato quando un singolo problema è responsabile dell'arresto anomalo di un numero significativo di sessioni dell'app
    • performance.threshold: l'evento viene inviato quando il rendimento di una metrica supera la soglia impostata
  • TRIGGER_SERVICE_ACCOUNT: l'indirizzo email dell'account di servizio IAM associato all'attivatore e a cui in precedenza hai concesso ruoli specifici richiesti da Eventarc. Ad esempio, $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com
  • PROJECT_ID: il tuo ID progetto Google Cloud

Note

  • Il flag --location deve essere global. Per ulteriori informazioni, consulta Località di Eventarc.
  • I flag --event-filters="type=google.firebase.firebasealerts.alerts.v1.published" e --event-filters="alerttype=ALERT_TYPE" sono obbligatori.
  • Una volta creato un attivatore, il tipo di filtro dell'evento non può essere modificato. Per un tipo di evento diverso, devi creare un nuovo attivatore.
  • Facoltativamente, puoi filtrare gli eventi in base a un ID app Firebase specifico utilizzando il flag --event-filters="appid=APP_ID" e specificando una corrispondenza esatta.
  • Il flag --service-account viene utilizzato per specificare l'indirizzo email dell'account di servizio Identity and Access Management (IAM) associato al trigger.

Esempio:

gcloud eventarc triggers create firealert-gke-trigger \
    --location=us-central1 \
    --destination-gke-cluster=gke-events-cluster \
    --destination-gke-location=us-central1-a \
    --destination-gke-namespace=default \
    --destination-gke-service=helloworld-events \
    --destination-gke-path=/ \
    --event-filters="type=google.firebase.firebasealerts.alerts.v1.published" \
    --event-filters="alerttype=crashlytics.velocity" \
    --service-account="${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com"

Questo comando crea un trigger denominato firealert-gke-trigger per l'evento identificato come google.firebase.firebasealerts.alerts.v1.published e per un tipo di avviso crashlytics.velocity.

Firebase Realtime Database

gcloud eventarc triggers create TRIGGER \
  --location=LOCATION \
  --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
  --destination-gke-location=DESTINATION_GKE_LOCATION \
  --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
  --destination-gke-service=DESTINATION_GKE_SERVICE \
  --destination-gke-path=DESTINATION_GKE_PATH \
  --event-filters="type=EVENT_FILTER_TYPE" \
  --event-filters="instance=INSTANCE" \
  --event-filters-path-pattern="ref=REF" \
  --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Sostituisci quanto segue:

  • TRIGGER: l'ID del trigger o un identificatore completo.
  • LOCATION: la posizione del trigger Eventarc. In alternativa, imposta la proprietà eventarc/location; ad esempio, gcloud config set eventarc/location us-central1. I trigger di Firebase Realtime Database per Eventarc sono disponibili solo nelle seguenti località:

    • us-central1
    • europe-west1
    • asia-southeast1

    Tieni presente che il trigger deve trovarsi nella stessa località dell'istanza di Firebase Realtime Database. Per ulteriori informazioni, consulta Posizioni dei database in tempo reale.

  • DESTINATION_GKE_CLUSTER: il nome del cluster GKE in cui è in esecuzione il servizio GKE di destinazione che riceve gli eventi.
  • DESTINATION_GKE_LOCATION: la località in cui può essere trovato il servizio GKE di destinazione. Se non viene specificato, si presume che il servizio si trovi nella stessa area geografica del trigger. Per maggiori informazioni, consulta Località di Cloud Run for Anthos su Google Cloud.
  • DESTINATION_GKE_NAMESPACE: lo spazio dei nomi in cui è in esecuzione il servizio GKE di destinazione. Se non è specificato, viene utilizzato lo spazio dei nomi default.
  • DESTINATION_GKE_SERVICE: il nome del servizio GKE che riceve gli eventi per il trigger. Il servizio può trovarsi in una qualsiasi delle località supportate da GKE e non deve trovarsi nella stessa località del trigger. Tuttavia, il servizio deve essere nello stesso progetto del trigger e riceverà eventi come richieste POST HTTP inviate al suo percorso dell'URL principale (/), ogni volta che l'evento viene generato.
  • (Facoltativo) DESTINATION_GKE_PATH: il percorso relativo specificato sul servizio GKE di destinazione a cui devono essere inviati gli eventi per il trigger. Ad esempio: /, /route, route, route/subroute.
  • EVENT_FILTER_TYPE: l'identificatore dell'evento Firebase Realtime Database e può essere uno dei seguenti:

    • google.firebase.database.ref.v1.created: l'evento viene inviato quando i dati vengono creati nel database
    • google.firebase.database.ref.v1.updated: l'evento viene inviato quando i dati vengono aggiornati nel database
    • google.firebase.database.ref.v1.deleted: l'evento viene inviato quando i dati vengono eliminati nel database
    • google.firebase.database.ref.v1.written: l'evento viene inviato quando i dati vengono creati, aggiornati o eliminati nel database
  • INSTANCE: una singola istanza di database e l'operatore possono essere uno dei seguenti:

    • Uguale; ad esempio, --event-filters="instance=INSTANCE"
    • Pattern del percorso, ad esempio --event-filters-path-pattern="instance=INSTANCE". Per scoprire di più, consulta Informazioni sui pattern dei percorsi.
  • REF: il percorso all'interno dell'istanza di database da cui vuoi ricevere eventi quando vengono creati, aggiornati o eliminati i dati in quel percorso o in una delle relative istanze secondarie.

  • TRIGGER_SERVICE_ACCOUNT: l'indirizzo email dell'account di servizio IAM associato all'attivatore e a cui in precedenza hai concesso ruoli specifici richiesti da Eventarc. Ad esempio, $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com
  • PROJECT_ID: il tuo ID progetto Google Cloud.

Note

  • Questi flag sono obbligatori:
    • --event-filters="type=EVENT_FILTER_TYPE"
    • --event-filters="instance=INSTANCE" o --event-filters-path-pattern="instance=INSTANCE"
    • --event-filters-path-pattern="ref=REF"
  • Una volta creato un attivatore, il tipo di filtro dell'evento non può essere modificato. Per un tipo di evento diverso, devi creare un nuovo attivatore.
  • Il flag --service-account viene utilizzato per specificare l'indirizzo email dell'account di servizio Identity and Access Management (IAM) associato al trigger.

Esempio:

gcloud eventarc triggers create rd-gke-trigger \
    --location=us-central1 \
    --destination-gke-cluster=gke-events-cluster \
    --destination-gke-location=us-central1-a \
    --destination-gke-namespace=default \
    --destination-gke-service=helloworld-events \
    --destination-gke-path=/ \
    --event-filters="type=google.firebase.database.ref.v1.created" \
    --event-filters="instance=test-instance" \
    --event-filters-path-pattern="ref=users/*" \
    --service-account=${PROJECT_NUMBER}-compute@developer.gserviceaccount.com

Questo comando crea un trigger denominato rd-gke-trigger per l'evento identificato come google.firebase.database.ref.v1.created.

Firebase Remote Config

gcloud eventarc triggers create TRIGGER \
  --location=global \
  --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
  --destination-gke-location=DESTINATION_GKE_LOCATION \
  --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
  --destination-gke-service=DESTINATION_GKE_SERVICE \
  --destination-gke-path=DESTINATION_GKE_PATH \
  --event-filters="type=google.firebase.remoteconfig.remoteConfig.v1.updated" \
  --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Sostituisci quanto segue:

  • TRIGGER: l'ID del trigger o un identificatore completo.
  • DESTINATION_GKE_CLUSTER: il nome del cluster GKE in cui è in esecuzione il servizio GKE di destinazione che riceve gli eventi.
  • DESTINATION_GKE_LOCATION: la località in cui può essere trovato il servizio GKE di destinazione. Se non viene specificato, si presume che il servizio si trovi nella stessa area geografica del trigger. Per maggiori informazioni, consulta Località di Cloud Run for Anthos su Google Cloud.
  • DESTINATION_GKE_NAMESPACE: lo spazio dei nomi in cui è in esecuzione il servizio GKE di destinazione. Se non è specificato, viene utilizzato lo spazio dei nomi default.
  • DESTINATION_GKE_SERVICE: il nome del servizio GKE che riceve gli eventi per il trigger. Il servizio può trovarsi in una qualsiasi delle località supportate da GKE e non deve trovarsi nella stessa località del trigger. Tuttavia, il servizio deve essere nello stesso progetto del trigger e riceverà eventi come richieste POST HTTP inviate al suo percorso dell'URL principale (/), ogni volta che l'evento viene generato.
  • (Facoltativo) DESTINATION_GKE_PATH: il percorso relativo specificato sul servizio GKE di destinazione a cui devono essere inviati gli eventi per il trigger. Ad esempio: /, /route, route, route/subroute.
  • TRIGGER_SERVICE_ACCOUNT: l'indirizzo email dell'account di servizio IAM associato all'attivatore e a cui in precedenza hai concesso ruoli specifici richiesti da Eventarc. Ad esempio, $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com
  • PROJECT_ID: il tuo ID progetto Google Cloud

Note

  • Il flag --location deve essere global. Per ulteriori informazioni, consulta Località di Eventarc.
  • Il flag --event-filters è obbligatorio e il tipo deve essere google.firebase.remoteconfig.remoteConfig.v1.updated. Quando viene aggiornato un modello Remote Config viene inviato un evento.
  • Una volta creato un attivatore, il tipo di filtro dell'evento non può essere modificato. Per un tipo di evento diverso, devi creare un nuovo attivatore.
  • Il flag --service-account viene utilizzato per specificare l'indirizzo email dell'account di servizio Identity and Access Management (IAM) associato al trigger.

Esempio:

gcloud eventarc triggers create rc-gke-trigger \
    --location=global \
    --destination-gke-cluster=gke-events-cluster \
    --destination-gke-location=us-central1-a \
    --destination-gke-namespace=default \
    --destination-gke-service=helloworld-events \
    --destination-gke-path=/ \
    --event-filters="type=google.firebase.remoteconfig.remoteConfig.v1.updated" \
    --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

Questo comando crea un trigger denominato rc-gke-trigger per l'evento identificato come google.firebase.remoteconfig.remoteConfig.v1.updated.

Firebase Test Lab

gcloud eventarc triggers create TRIGGER \
  --location=global \
  --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
  --destination-gke-location=DESTINATION_GKE_LOCATION \
  --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
  --destination-gke-service=DESTINATION_GKE_SERVICE \
  --destination-gke-path=DESTINATION_GKE_PATH \
  --event-filters="type=google.firebase.testlab.testMatrix.v1.completed" \
  --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Sostituisci quanto segue:

  • TRIGGER: l'ID del trigger o un identificatore completo.
  • DESTINATION_GKE_CLUSTER: il nome del cluster GKE in cui è in esecuzione il servizio GKE di destinazione che riceve gli eventi.
  • DESTINATION_GKE_LOCATION: la località in cui può essere trovato il servizio GKE di destinazione. Se non viene specificato, si presume che il servizio si trovi nella stessa area geografica del trigger. Per maggiori informazioni, consulta Località di Cloud Run for Anthos su Google Cloud.
  • DESTINATION_GKE_NAMESPACE: lo spazio dei nomi in cui è in esecuzione il servizio GKE di destinazione. Se non è specificato, viene utilizzato lo spazio dei nomi default.
  • DESTINATION_GKE_SERVICE: il nome del servizio GKE che riceve gli eventi per il trigger. Il servizio può trovarsi in una qualsiasi delle località supportate da GKE e non deve trovarsi nella stessa località del trigger. Tuttavia, il servizio deve essere nello stesso progetto del trigger e riceverà eventi come richieste POST HTTP inviate al suo percorso dell'URL principale (/), ogni volta che l'evento viene generato.
  • (Facoltativo) DESTINATION_GKE_PATH: il percorso relativo specificato sul servizio GKE di destinazione a cui devono essere inviati gli eventi per il trigger. Ad esempio: /, /route, route, route/subroute.
  • TRIGGER_SERVICE_ACCOUNT: l'indirizzo email dell'account di servizio IAM associato all'attivatore e a cui in precedenza hai concesso ruoli specifici richiesti da Eventarc. Ad esempio, $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com
  • PROJECT_ID: il tuo ID progetto Google Cloud

Note

  • Il flag --location deve essere global. Per ulteriori informazioni, consulta Località di Eventarc.
  • Il flag --event-filters è obbligatorio e il tipo deve essere google.firebase.testlab.testMatrix.v1.completed. Un evento viene inviato al termine di un TestMatrix.
  • Una volta creato un attivatore, il tipo di filtro dell'evento non può essere modificato. Per un tipo di evento diverso, devi creare un nuovo attivatore.
  • Il flag --service-account viene utilizzato per specificare l'indirizzo email dell'account di servizio Identity and Access Management (IAM) associato al trigger.

Esempio:

gcloud eventarc triggers create tl-gke-trigger \
    --location=global \
    --destination-gke-cluster=gke-events-cluster \
    --destination-gke-location=us-central1-a \
    --destination-gke-namespace=default \
    --destination-gke-service=helloworld-events \
    --destination-gke-path=/ \
    --event-filters="type=google.firebase.testlab.testMatrix.v1.completed" \
    --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

Questo comando crea un trigger denominato tl-gke-trigger per l'evento identificato come google.firebase.testlab.testMatrix.v1.completed.

Cloud IoT

gcloud eventarc triggers create TRIGGER \
  --location=LOCATION \
  --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
  --destination-gke-location=DESTINATION_GKE_LOCATION \
  --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
  --destination-gke-service=DESTINATION_GKE_SERVICE \
  --destination-gke-path=DESTINATION_GKE_PATH \
  --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 completo.
  • LOCATION: la posizione del trigger Eventarc. Per evitare problemi di prestazioni e residenza dei dati causati da un trigger globale, deve corrispondere alla località del servizio Google Cloud che genera gli eventi. In alternativa, puoi impostare la proprietà eventarc/location, ad esempio gcloud config set eventarc/location us-central1. Per scoprire di più, consulta le località di Eventarc.
  • DESTINATION_GKE_CLUSTER: il nome del cluster GKE in cui è in esecuzione il servizio GKE di destinazione che riceve gli eventi.
  • DESTINATION_GKE_LOCATION: la località in cui può essere trovato il servizio GKE di destinazione. Se non viene specificato, si presume che il servizio si trovi nella stessa area geografica del trigger. Per maggiori informazioni, consulta Località di Cloud Run for Anthos su Google Cloud.
  • DESTINATION_GKE_NAMESPACE: lo spazio dei nomi in cui è in esecuzione il servizio GKE di destinazione. Se non è specificato, viene utilizzato lo spazio dei nomi default.
  • DESTINATION_GKE_SERVICE: il nome del servizio GKE che riceve gli eventi per il trigger. Il servizio può trovarsi in una qualsiasi delle località supportate da GKE e non deve trovarsi nella stessa località del trigger. Tuttavia, il servizio deve essere nello stesso progetto del trigger e riceverà eventi come richieste POST HTTP inviate al suo percorso dell'URL principale (/), ogni volta che l'evento viene generato.
  • (Facoltativo) DESTINATION_GKE_PATH: il percorso relativo specificato sul servizio GKE di destinazione a cui devono essere inviati gli eventi per il trigger. Ad esempio: /, /route, route, route/subroute.
  • EVENT_FILTER_TYPE: l'identificatore dell'evento. Un evento viene emesso quando una chiamata API per il metodo ha esito positivo. Per le operazioni a lunga esecuzione, l'evento viene emesso solo alla fine dell'operazione e solo se l'azione viene eseguita correttamente. Ad esempio, per il tipo google.cloud.iot.v1.DeviceManager.CreateDeviceRegistry, viene emesso un evento quando viene creato un registro tramite la versione v1 in Cloud IoT. Per ulteriori informazioni sui tipi di eventi, consulta la pagina Tipi di eventi supportati da Eventarc.
  • (Facoltativo) COLLECTION_ID: l'identificatore del tipo di evento. Ad esempio, per un evento Cloud IoT, COLLECTION_ID può essere uno dei seguenti:
    • device
    • registry
  • RESOURCE_ID: l'identificatore della risorsa per la raccolta associata. Per ulteriori informazioni, consulta ID risorsa.
  • PATH_PATTERN: il pattern del percorso da applicare quando si filtra la 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 associati gli eventi per tutte le risorse.
  • Impossibile modificare EVENT_FILTER_TYPE dopo la creazione. Per modificare EVENT_FILTER_TYPE, crea un nuovo trigger ed elimina quello precedente.
  • Ogni attivatore può avere più filtri evento, delimitati da virgole in un --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 percorso della risorsa.
  • Di seguito sono riportati alcuni esempi di pattern del percorso:
    • --event-filters-path-pattern="registry=my-registry-*" (corrisponde agli eventi per i registry il cui nome inizia con my-registry-)
    • --event-filters-path-pattern="device=my-device-*" e --event-filters-path-pattern="registry=my-registry" (corrisponde agli eventi per tutti i dispositivi il cui nome inizia con "my-device-" in un registro chiamato my-registry)
    • --event-filters-path-pattern="device=my-device-*" (corrisponde a eventi per tutti i dispositivi in qualsiasi registro il cui nome inizia con my-device-)
  • Il flag --service-account viene utilizzato per specificare l'indirizzo email dell'account di servizio Identity and Access Management (IAM) associato al trigger.

Esempio:

gcloud eventarc triggers create cloud-iot-gke-trigger \
    --location=us-central1 \
    --destination-gke-cluster=gke-events-cluster \
    --destination-gke-location=us-central1-a \
    --destination-gke-namespace=default \
    --destination-gke-service=helloworld-events \
    --destination-gke-path=/ \
    --event-filters="type=google.cloud.iot.v1.DeviceManager.CreateDeviceRegistry" \
    --event-filters-path-pattern="registry=my-registry-*" \
    --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

Questo comando crea un trigger denominato cloud-iot-gke-trigger per l'evento identificato come google.cloud.iot.v1.DeviceManager.CreateDeviceRegistry e crea una corrispondenza tra gli eventi per i nomi di registro che iniziano con my-registry-.

Messaggi Pub/Sub (argomento esistente)

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
    --destination-gke-location=DESTINATION_GKE_LOCATION \
    --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
    --destination-gke-service=DESTINATION_GKE_SERVICE \
    --destination-gke-path=DESTINATION_GKE_PATH \
    --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
    --transport-topic=projects/PROJECT_ID/topics/TOPIC_ID \
    --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Sostituisci quanto segue:

  • TRIGGER: l'ID del trigger o un identificatore completo.
  • LOCATION: la posizione del trigger Eventarc. Per evitare problemi di prestazioni e residenza dei dati causati da un trigger globale, deve corrispondere alla località del servizio Google Cloud che genera gli eventi. In alternativa, puoi impostare la proprietà eventarc/location, ad esempio gcloud config set eventarc/location us-central1. Per scoprire di più, consulta le località di Eventarc.
  • DESTINATION_GKE_CLUSTER: il nome del cluster GKE in cui è in esecuzione il servizio GKE di destinazione che riceve gli eventi.
  • DESTINATION_GKE_LOCATION: la località in cui può essere trovato il servizio GKE di destinazione. Se non viene specificato, si presume che il servizio si trovi nella stessa area geografica del trigger. Per maggiori informazioni, consulta Località di Cloud Run for Anthos su Google Cloud.
  • DESTINATION_GKE_NAMESPACE: lo spazio dei nomi in cui è in esecuzione il servizio GKE di destinazione. Se non è specificato, viene utilizzato lo spazio dei nomi default.
  • DESTINATION_GKE_SERVICE: il nome del servizio GKE che riceve gli eventi per il trigger. Il servizio può trovarsi in una qualsiasi delle località supportate da GKE e non deve trovarsi nella stessa località del trigger. Tuttavia, il servizio deve essere nello stesso progetto del trigger e riceverà eventi come richieste POST HTTP inviate al suo percorso dell'URL principale (/), ogni volta che l'evento viene generato.
  • (Facoltativo) DESTINATION_GKE_PATH: il percorso relativo specificato sul servizio GKE di destinazione a cui devono essere inviati gli eventi per il trigger. Ad esempio: /, /route, route, route/subroute.
  • PROJECT_ID il tuo ID progetto Google Cloud
  • TOPIC_ID: l'ID dell'argomento Pub/Sub esistente. L'argomento deve trovarsi nello stesso progetto del trigger.
  • TRIGGER_SERVICE_ACCOUNT: l'indirizzo email dell'account di servizio IAM associato all'attivatore e a cui in precedenza hai concesso ruoli specifici richiesti da Eventarc. Ad esempio, $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com

Note

  • Il flag --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" è obbligatorio e non può essere modificato. Per un tipo di evento diverso, devi creare un nuovo attivatore.
  • Ogni attivatore può avere più filtri evento, delimitati da virgole in un --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 --transport-topic viene utilizzato per specificare l'ID dell'argomento Pub/Sub esistente o il relativo identificatore completo.
  • Per impostazione predefinita, gli abbonamenti Pub/Sub creati per Eventarc rimangono invariati indipendentemente dall'attività e non hanno scadenza. Per modificare la durata di inattività, consulta la sezione Gestire gli abbonamenti.

Esempio:

  gcloud eventarc triggers create pubsub-gke-trigger-existing \
      --destination-gke-cluster=gke-events-cluster \
      --destination-gke-location=us-central1-a \
      --destination-gke-namespace=default \
      --destination-gke-service=helloworld \
      --destination-gke-path=/ \
      --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
      --transport-topic=projects/${PROJECT_ID}/topics/${TOPIC_ID} \
      --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

Viene creato un trigger denominato pubsub-gke-trigger-existing per l'argomento Pub/Sub identificato da projects/${PROJECT_ID}/topics/${TOPIC_ID}.

Messaggi Pub/Sub (nuovo argomento)

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
    --destination-gke-location=DESTINATION_GKE_LOCATION \
    --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
    --destination-gke-service=DESTINATION_GKE_SERVICE \
    --destination-gke-path=DESTINATION_GKE_PATH \
    --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
    --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Sostituisci quanto segue:

  • TRIGGER: l'ID del trigger o un identificatore completo.
  • LOCATION: la posizione del trigger Eventarc. Per evitare problemi di prestazioni e residenza dei dati causati da un trigger globale, deve corrispondere alla località del servizio Google Cloud che genera gli eventi. In alternativa, puoi impostare la proprietà eventarc/location, ad esempio gcloud config set eventarc/location us-central1. Per scoprire di più, consulta le località di Eventarc.
  • DESTINATION_GKE_CLUSTER: il nome del cluster GKE in cui è in esecuzione il servizio GKE di destinazione che riceve gli eventi.
  • DESTINATION_GKE_LOCATION: la località in cui può essere trovato il servizio GKE di destinazione. Se non viene specificato, si presume che il servizio si trovi nella stessa area geografica del trigger. Per maggiori informazioni, consulta Località di Cloud Run for Anthos su Google Cloud.
  • DESTINATION_GKE_NAMESPACE: lo spazio dei nomi in cui è in esecuzione il servizio GKE di destinazione. Se non è specificato, viene utilizzato lo spazio dei nomi default.
  • DESTINATION_GKE_SERVICE: il nome del servizio GKE che riceve gli eventi per il trigger. Il servizio può trovarsi in una qualsiasi delle località supportate da GKE e non deve trovarsi nella stessa località del trigger. Tuttavia, il servizio deve essere nello stesso progetto del trigger e riceverà eventi come richieste POST HTTP inviate al suo percorso dell'URL principale (/), ogni volta che l'evento viene generato.
  • (Facoltativo) DESTINATION_GKE_PATH: il percorso relativo specificato sul servizio GKE di destinazione a cui devono essere inviati gli eventi per il trigger. Ad esempio: /, /route, route, route/subroute.
  • TRIGGER_SERVICE_ACCOUNT: l'indirizzo email dell'account di servizio IAM associato all'attivatore e a cui in precedenza hai concesso ruoli specifici richiesti da Eventarc. Ad esempio, $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com
  • PROJECT_ID il tuo ID progetto Google Cloud

Note

  • Il flag --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" è obbligatorio e non può essere modificato. Per un tipo di evento diverso, devi creare un nuovo attivatore.
  • Ogni attivatore può avere più filtri evento, delimitati da virgole in un --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.
  • Per impostazione predefinita, gli abbonamenti Pub/Sub creati per Eventarc rimangono invariati indipendentemente dall'attività e non hanno scadenza. Per modificare la durata di inattività, consulta la sezione Gestire gli abbonamenti.

Esempio:

  gcloud eventarc triggers create pubsub-gke-trigger-new \
      --location=us-central1 \
      --destination-gke-cluster=gke-events-cluster \
      --destination-gke-location=us-central1-a \
      --destination-gke-namespace=default \
      --destination-gke-service=helloworld \
      --destination-gke-path=/ \
      --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
      --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

Viene creato un nuovo argomento Pub/Sub e viene attivato un trigger denominato pubsub-gke-trigger-new.

Crea un trigger utilizzando Google Cloud Console

Puoi creare un trigger tramite la console Google Cloud. Per maggiori dettagli, consulta Creare un trigger utilizzando la console Google Cloud.

Elenca un trigger utilizzando Google Cloud CLI

Puoi confermare la creazione di un trigger elencando i trigger Eventarc:

gcloud eventarc triggers list --location=LOCATION

Sostituisci LOCATION con l'ID o l'identificatore completo della posizione del trigger Eventarc, ad esempio us-central1.

Per ulteriori informazioni sulla gestione dei trigger Eventarc, consulta Gestire i trigger.

Passaggi successivi

Per iniziare a utilizzare Eventarc per GKE, consulta le guide rapide.