Ogni origine evento, target evento e trigger Eventarc ha una propria località. A volte, queste località devono corrispondere; altre volte, possono essere diverse. Per saperne di più, consulta Località di Eventarc.
Posizione di origine
La località dell'origine evento spesso determina la località 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 del target evento (ad esempio, un servizio Cloud Run), scegli una regione supportata come località. In genere, per motivi di latenza e località dei dati, ti consigliamo di utilizzare la stessa regione dell'origine evento.
Tuttavia, non è un requisito e nell'esempio precedente l'origine evento si trova in europe-west1, mentre il flag --destination-run-region indica che il target evento si trova in us-central1.
Località del trigger
Inoltre, il tipo di trigger Eventarc che crei influisce sulla località del trigger, specificata tramite il flag --location:
Cloud Audit Logs
Utilizzando i trigger Cloud Audit Logs, puoi collegare qualsiasi origine evento che emette log di controllo a un target evento. I trigger Cloud Audit Logs sono disponibili nelle località a regione singola e puoi anche creare un trigger Eventarc globale; tuttavia, i trigger non sono supportati nelle località a due regioni e multiregionali.
La località dell'origine evento determina la località del trigger. In genere, si tratta di una località a regione singola. Ad esempio, per acquisire gli eventi Cloud Storage da un bucket nella regione europe-west1 con un trigger dei log di controllo, 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 due regioni o multiregionale come eu, puoi creare un trigger con una località global e questo corrisponderà a tutti i bucket in tutte le regioni per cui corrispondono i filtri evento:
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 nelle località a regione singola, a due regioni e multiregionali; non puoi creare un trigger Eventarc globale.
La località del bucket Cloud Storage determina la località del trigger Eventarc e deve corrispondere. Nell'esempio seguente, la località del trigger corrisponde a quella del bucket Cloud Storage (la località 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 un target evento. I trigger Pub/Sub sono disponibili solo nelle località a regione singola e non puoi creare un trigger Eventarc globale.
Sebbene gli argomenti Pub/Sub siano globali e non siano vincolati 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 l'argomento in modo che tutti i dati rimangano in una singola regione.
Passaggi successivi
- Per scoprire come instradare gli eventi tra i progetti, consulta il tutorial. Google Cloud