Setiap sumber peristiwa, target peristiwa, dan pemicu Eventarc memiliki lokasinya sendiri. Terkadang, lokasi ini harus cocok; di lain waktu, lokasi tersebut dapat berbeda. Untuk informasi selengkapnya, lihat Lokasi Eventarc.
Lokasi sumber
Lokasi sumber peristiwa sering kali menentukan lokasi pemicu. Dalam
contoh berikut, karena bucket Cloud Storage berada di region europe-west1
, pemicu juga harus berada di 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
Lokasi target
Saat men-deploy target peristiwa (misalnya, layanan Cloud Run),
Anda memilih region yang didukung sebagai lokasinya. Biasanya, untuk alasan latensi dan lokalitas data, Anda ingin bucket ini berada di region yang sama dengan sumber peristiwa.
Namun, hal ini bukan merupakan persyaratan dan dalam contoh sebelumnya, sumber peristiwa
berada di europe-west1
, sedangkan tanda --destination-run-region
menunjukkan bahwa
target peristiwa berada di us-central1
.
Lokasi pemicu
Selain itu, jenis pemicu Eventarc yang Anda buat memengaruhi
lokasi pemicu yang ditentukan melalui flag --location
:
Cloud Audit Logs
Dengan pemicu Cloud Audit Logs, Anda dapat menghubungkan sumber peristiwa apa pun yang menghasilkan log audit ke target peristiwa. Pemicu Log Audit Cloud tersedia di lokasi satu region dan Anda juga dapat membuat pemicu Eventarc global; namun, pemicu tidak didukung di lokasi dual-region dan multi-region.
Lokasi sumber peristiwa menentukan lokasi pemicu. Biasanya,
ini adalah lokasi satu region. Misalnya, untuk merekam peristiwa Cloud Storage dari bucket di region europe-west1
dengan pemicu log audit, buat pemicu di lokasi yang sama:
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
Karena tidak ada pemfilteran menurut bucket saat Anda menggunakan pemicu Log Audit Cloud, hal ini akan cocok dengan semua bucket di region europe-west1
. (Untuk memfilter
berdasarkan bucket, Anda dapat menggunakan pemicu Cloud Storage langsung.)
Atau, untuk mencocokkan bucket region ganda atau multi-region seperti eu
, Anda dapat membuat pemicu dengan lokasi global
dan ini akan cocok dengan semua bucket di semua region yang filter peristiwanya cocok:
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
Pemicu Cloud Storage merespons peristiwa di dalam bucket Cloud Storage, yaitu pembuatan, penghapusan, pengarsipan, dan pembaruan metadata objek. Pemicu Cloud Storage tersedia di lokasi satu region, dual-region, dan multi-region; Anda tidak dapat membuat pemicu Eventarc global.
Lokasi bucket Cloud Storage menentukan lokasi pemicu Eventarc, dan keduanya harus cocok. Dalam contoh
berikut, lokasi pemicu cocok dengan bucket Cloud Storage (lokasi multi-region 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
Jika bucket dan wilayah pemicu tidak cocok, Anda akan melihat error yang mirip dengan berikut ini:
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
Pemicu Pub/Sub menghubungkan topik Pub/Sub ke target peristiwa. Pemicu Pub/Sub hanya tersedia di lokasi satu region dan Anda tidak dapat membuat pemicu Eventarc global.
Meskipun topik Pub/Sub bersifat global dan tidak terikat dengan satu region, saat membuat pemicu Pub/Sub, Anda harus menentukan region untuk pemicu tersebut menggunakan tanda --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 mengonfigurasi pembatasan wilayah sehingga peristiwa Pub/Sub hanya ada di lokasi yang ditentukan. Anda juga dapat menggunakan endpoint layanan Pub/Sub regional untuk memublikasikan ke topik sehingga semua data tetap berada di satu region.
Langkah berikutnya
- Untuk mempelajari cara merutekan peristiwa di seluruh Google Cloud project, lihat tutorial.