Memahami lokasi Eventarc

Setiap sumber peristiwa, target peristiwa, dan pemicu Eventarc memiliki lokasinya sendiri. Terkadang, lokasi ini harus sama; terkadang, lokasi ini bisa berbeda. Untuk mengetahui 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 agar ini berada di region yang sama dengan sumber peristiwa Anda. Namun, hal ini bukan persyaratan dan dalam contoh sebelumnya, sumber peristiwa berada di europe-west1, sementara 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 tanda --location:

Cloud Audit Logs

Dengan pemicu Cloud Audit Logs, Anda dapat menghubungkan sumber peristiwa apa pun yang memancarkan log audit ke target peristiwa. Pemicu Cloud Audit Logs 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 wilayah. Misalnya, untuk merekam peristiwa Cloud Storage dari bucket di region europe-west1 dengan pemicu audit log, 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 Cloud Audit Logs, pemicu ini akan cocok dengan semua bucket di region europe-west1. (Untuk memfilter menurut bucket, Anda dapat menggunakan pemicu Cloud Storage langsung.)

Atau, untuk mencocokkan bucket dual-region atau multi-region seperti eu, Anda dapat membuat pemicu dengan lokasi global dan ini akan mencocokkan 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—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 lokasi 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 region bucket dan 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 ke 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 geofencing sehingga peristiwa Pub/Sub hanya tetap ada di lokasi yang ditentukan. Anda juga dapat menggunakan endpoint layanan Pub/Sub regional untuk memublikasikan ke topik sehingga semua data tetap berada dalam satu region.

Langkah berikutnya

  • Untuk mempelajari cara merutekan peristiwa di seluruh Google Cloud project, lihat tutorial.