Ogni origine evento, target e trigger Eventarc ha la propria località. A volte queste località devono corrispondere, mentre in altri momenti possono essere diverse. Per ulteriori informazioni, consulta la sezione Località di Eventarc.
Posizione di origine
La località dell'origine evento spesso determina la posizione del trigger. Nell'esempio seguente, poiché il bucket Cloud Storage si trova nell'area geografica europe-west1
, il trigger deve trovarsi anche 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 del target di eventi (ad esempio un servizio Cloud Run), scegli una regione supportata come località. In genere, per motivi legati a latenza e località dei dati, vuoi che si trovi nella stessa regione dell'origine evento.
Tuttavia, non è un requisito e nell'esempio precedente l'origine evento è in europe-west1
, mentre il flag --destination-run-region
indica che il target dell'evento è in us-central1
.
Località trigger
Inoltre, il tipo di trigger Eventarc che crei influisce sulla località del trigger specificata tramite il flag --location
:
Cloud Audit Logs
Utilizzando gli attivatori Audit log di Cloud, puoi collegare qualsiasi origine evento che emette audit log a una destinazione evento. Gli attivatori di Cloud Audit Logs sono disponibili in località a singola area geografica e puoi anche creare un trigger Eventarc globale, ma non sono supportati in località con due o più aree geografiche.
La località dell'origine evento determina la località dell'attivatore. In genere, si tratta di una località a singola area geografica. Ad esempio, per acquisire gli 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 è previsto alcun filtro per bucket quando utilizzi un trigger di Cloud Audit Logs, questo corrisponderà a tutti i bucket nella regione europe-west1
. (per filtrare in base al bucket, puoi utilizzare un trigger Cloud Storage diretto).
In alternativa, per trovare una corrispondenza con un bucket a due o più regioni, come eu
, puoi creare un trigger con una località global
corrispondente a tutti i bucket in tutte le regioni per cui corrispondono i filtri eventi:
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 aggiornamento dei metadati degli oggetti. I trigger Cloud Storage sono disponibili in località a singola area geografica, a due o più aree geografiche; non puoi creare un trigger Eventarc globale.
La località del bucket Cloud Storage determina la località del trigger Eventarc e devono corrispondere. Nell'esempio riportato di seguito, la località del trigger corrisponde a quella del bucket Cloud Storage (la località a più aree geografiche 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, verrà 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 singola regione e non puoi creare un trigger Eventarc globale.
Anche se gli argomenti Pub/Sub sono globali e non sono legati 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 rimangano persistenti solo nella località specificata. Puoi anche utilizzare endpoint di servizio Pub/Sub a livello di area geografica per pubblicare contenuti 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, guarda il tutorial.