Informazioni sulle località Eventarc

Ogni origine evento, destinazione evento e attivatore Eventarc ha una propria posizione. A volte queste località devono corrispondere, altre volte possono essere diverse. Per saperne di più, consulta Località Eventarc.

Posizione di origine

La posizione dell'origine dell'evento spesso determina la posizione del trigger. Nell'esempio seguente, poiché il bucket Cloud Storage si trova nella regione europe-west1, anche il trigger deve trovarsi in europe-west1.

gcloud eventarc triggers create trigger-storage \
  --destination-run-service=hello \
  --destination-run-region=us-central1 \
  --location=europe-west1 \
  --event-filters="type=google.cloud.storage.object.v1.finalized" \
  --event-filters="bucket=my-bucket-in-europe-west1-region" \
  --service-account=$PROJECT_NUMBER-compute@developer.gserviceaccount.com

Località target

Quando esegui il deployment della destinazione evento (ad esempio, un servizio Cloud Run), scegli una regione supportata come località. In genere, per motivi di latenza e località dei dati, è consigliabile che si trovi nella stessa regione dell'origine eventi. Tuttavia, non è un requisito e nell'esempio precedente l'origine dell'evento si trova in europe-west1, mentre il flag --destination-run-region indica che la destinazione dell'evento si trova in us-central1.

Posizione del trigger

Inoltre, il tipo di trigger Eventarc che crei influisce sulla posizione del trigger, che viene specificata tramite il flag --location:

Cloud Audit Logs

Utilizzando i trigger di Cloud Audit Logs, puoi connettere qualsiasi origine eventi che emette audit log a una destinazione eventi. I trigger Cloud Audit Logs sono disponibili in località a singola regione e puoi anche creare un trigger Eventarc globale; tuttavia, i trigger non sono supportati in località a doppia regione e multiregionali.

La posizione dell'origine evento determina la posizione del trigger. In genere, si tratta di una località di una sola regione. Ad esempio, per acquisire eventi Cloud Storage da un bucket nella regione europe-west1 con un trigger di audit log, crea un trigger nella stessa località:

gcloud eventarc triggers create trigger-auditlog \
  --destination-run-service=hello \
  --destination-run-region=us-central1 \
  --location=europe-west1 \
  --event-filters="type=google.cloud.audit.log.v1.written" \
  --event-filters="serviceName=storage.googleapis.com" \
  --event-filters="methodName=storage.objects.create" \
  --service-account=$PROJECT_NUMBER-compute@developer.gserviceaccount.com

Poiché non è possibile filtrare per bucket quando utilizzi un trigger Cloud Audit Logs, questo corrisponderà a tutti i bucket nella regione europe-west1. Per filtrare per bucket, puoi invece utilizzare un trigger Cloud Storage diretto.

In alternativa, per trovare una corrispondenza con un bucket a doppia regione o multiregionale come eu, puoi creare un trigger con una località global e questo troverà una corrispondenza con tutti i bucket in tutte le regioni per cui i filtri eventi corrispondono:

gcloud eventarc triggers create trigger-storage \
  --destination-run-service=hello \
  --destination-run-region=us-central1 \
  --location=global \
  --event-filters="type=google.cloud.storage.object.v1.finalized" \
  --event-filters="bucket=my-bucket-in-europe-west1-region" \
  --service-account=$PROJECT_NUMBER-compute@developer.gserviceaccount.com

Cloud Storage

I trigger Cloud Storage rispondono agli eventi all'interno di un bucket Cloud Storage: creazione, eliminazione, archiviazione e aggiornamenti dei metadati degli oggetti. I trigger Cloud Storage sono disponibili in località a regione singola, a due regioni e a più regioni; non puoi creare un trigger Eventarc globale.

La posizione del bucket Cloud Storage determina la posizione del trigger Eventarc e deve corrispondere. Nell'esempio seguente, la posizione del trigger corrisponde a quella del bucket Cloud Storage (la posizione multiregionale eu):

gcloud eventarc triggers create trigger-storage \
  --destination-run-service=hello \
  --destination-run-region=us-central1 \
  --location=eu \
  --event-filters="type=google.cloud.storage.object.v1.finalized" \
  --event-filters="bucket=my-bucket-in-eu-multi-region" \
  --service-account=$PROJECT_NUMBER-compute@developer.gserviceaccount.com

Se le regioni del bucket e del trigger non corrispondono, viene visualizzato un errore simile al seguente:

ERROR: (gcloud.eventarc.triggers.create) INVALID_ARGUMENT: The request was
invalid: Bucket "my-bucket-in-eu-multi-region" location "eu" does not match
trigger location "europe-west1". Try again by creating the trigger in "eu".

Pub/Sub

Un trigger Pub/Sub collega un argomento Pub/Sub a una destinazione evento. I trigger Pub/Sub sono disponibili solo in località a una sola regione e non puoi creare un trigger Eventarc globale.

Sebbene gli argomenti Pub/Sub siano globali e non collegati a una singola regione, quando crei un trigger Pub/Sub, devi specificare una regione utilizzando il flag --location:

gcloud eventarc triggers create trigger-pubsub \
--destination-run-service=hello \
--destination-run-region=us-central1 \
--location=us-central1 \
--event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
--transport-topic=projects/your-projectid/topics/your-topic

Eventarc configura il geofencing in modo che gli eventi Pub/Sub persistano solo nella località specificata. Puoi anche utilizzare gli endpoint di servizio Pub/Sub regionali per pubblicare nell'argomento in modo che tutti i dati rimangano in un'unica regione.

Passaggi successivi

  • Per scoprire come instradare gli eventi tra i progetti Google Cloud , consulta il tutorial.