Ogni origine evento, target evento e attivatore Eventarc ha la propria posizione. A volte, queste località devono corrispondere; altre volte, possono essere diverse. Per ulteriori informazioni, consulta Località Eventarc.
Posizione di origine
La posizione della sorgente dell'evento spesso determina la posizione dell'attivatore. Nel
seguente esempio, poiché il bucket Cloud Storage si trova nella regione europe-west1
, anche l'attivatore 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 posizione. In genere, per motivi di latenza e località dei dati, è consigliabile che si trovi nella 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
la destinazione evento si trova in us-central1
.
Posizione dell'attivatore
Inoltre, il tipo di trigger Eventarc che crei influisce sulla posizione dell'trigger, specificata tramite il flag --location
:
Cloud Audit Logs
Utilizzando gli attivatori dei log di controllo di Cloud, puoi collegare qualsiasi origine evento che emette log di controllo a un target evento. Gli attivatori di Log di controllo di Cloud sono disponibili in località con una sola regione e puoi anche creare un attivatore Eventarc globale. Tuttavia, gli attivatori non sono supportati nelle località con due regioni e più regioni.
La posizione dell'origine evento determina la posizione dell'attivatore. In genere, si tratta di una località in una singola regione. Ad esempio, per acquisire gli eventi Cloud Storage da un bucket nella regione europe-west1
con un trigger di log di controllo, crea un trigger nella stessa posizione:
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 viene applicato alcun filtro per bucket quando utilizzi un attivatore dei log di controllo di Cloud, verrà trovata una corrispondenza per tutti i bucket nella regione europe-west1
. Per filtrare
per bucket, puoi utilizzare un attivatore Cloud Storage diretto.
In alternativa, per trovare una corrispondenza con un bucket a due regioni o multiregionale come eu
, puoi creare un attivatore con una località eu
che corrisponderà a tutti i bucket in tutte le regioni per cui i filtri evento corrispondono:global
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
Gli attivatori Cloud Storage rispondono agli eventi all'interno di un bucket Cloud Storage, ovvero creazione, eliminazione, archiviazione e aggiornamenti dei metadati degli oggetti. Gli attivatori Cloud Storage sono disponibili in località a regione singola, a due regioni e a più regioni. Non puoi creare un attivatore Eventarc globale.
La posizione del bucket Cloud Storage determina la posizione dell'attivatore Eventarc e le due devono corrispondere. Nell'esempio seguente, la posizione dell'attivatore 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 dell'attivatore 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. Gli trigger Pub/Sub sono disponibili solo in località con una sola regione e non puoi creare un trigger Eventarc globale.
Sebbene gli argomenti Pub/Sub siano globali e non 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 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 Google Cloud progetti, consulta il tutorial.