Pemicu Eventarc menyatakan minat Anda pada peristiwa atau rangkaian peristiwa tertentu. Anda dapat mengonfigurasi perutean peristiwa dengan menentukan filter untuk pemicu, termasuk sumber peristiwa, dan layanan Cloud Run target.
Eventarc mengirimkan peristiwa ke penerima peristiwa dalam format CloudEvents melalui permintaan HTTP.
Petunjuk ini menunjukkan cara mengonfigurasi perutean ke layanan Cloud Run yang dipicu saat log audit dibuat yang cocok dengan kriteria filter pemicu. Untuk mengetahui daftar peristiwa log audit yang didukung oleh Eventarc, termasuk nilai serviceName
dan methodName
, lihat Jenis peristiwa Google yang didukung oleh Eventarc.
Untuk mengetahui informasi selengkapnya tentang cara merekam peristiwa yang dipicu saat log audit dibuat dan cocok dengan kriteria filter pemicu, lihat Menentukan filter peristiwa untuk Cloud Audit Logs.
Bersiap untuk membuat pemicu
Sebelum Anda membuat pemicu, selesaikan prasyarat ini:
Konsol
Di Google Cloud konsol, pada halaman pemilih project, pilih atau buat Google Cloud project.
Aktifkan Cloud Logging, Eventarc, dan Eventarc Publishing API.
Jika berlaku, aktifkan API yang terkait dengan peristiwa Cloud Audit Logs. Misalnya, untuk log audit fungsi Cloud Run, aktifkan Cloud Functions API.
Jika Anda belum memilikinya, buat akun layanan yang dikelola pengguna, lalu berikan peran dan izin yang diperlukan agar Eventarc dapat mengelola peristiwa untuk layanan target Anda.
Di konsol Google Cloud , buka halaman Create service account.
Pilih project Anda.
Di kolom Nama akun layanan, masukkan nama. Konsol Google Cloud akan mengisi kolom Service account ID berdasarkan nama ini.
Di kolom Deskripsi akun layanan, masukkan sebuah deskripsi. Contoh,
Service account for event trigger
.Klik Buat dan lanjutkan.
Untuk memberikan akses yang sesuai, di daftar Pilih peran, pilih peran Identity and Access Management (IAM) yang diperlukan untuk diberikan ke akun layanan Anda untuk pemanggilan yang diautentikasi atau tidak diautentikasi. Untuk mengetahui informasi selengkapnya, lihat Peran dan izin untuk target Cloud Run.
Untuk peran tambahan, klik
Tambahkan peran lain, lalu tambahkan setiap peran tambahan.Klik Lanjutkan.
Untuk menyelesaikan pembuatan akun, klik Selesai.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Aktifkan Cloud Logging, Eventarc, dan Eventarc Publishing API.
gcloud services enable logging.googleapis.com \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com
Jika berlaku, aktifkan API yang terkait dengan peristiwa Cloud Audit Logs. Misalnya, untuk log audit fungsi Cloud Run, aktifkan
cloudfunctions.googleapis.com
.Jika Anda belum memilikinya, buat akun layanan yang dikelola pengguna, lalu berikan peran dan izin yang diperlukan agar Eventarc dapat mengelola peristiwa untuk layanan target Anda.
Buat akun layanan:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Ganti
SERVICE_ACCOUNT_NAME
dengan nama akun layanan. Panjangnya harus antara 6 hingga 30 karakter, dan dapat berisi karakter alfanumerik huruf kecil dan tanda pisah. Setelah membuat akun layanan, Anda tidak dapat mengubah namanya.Berikan peran atau izin Identity and Access Management (IAM) yang diperlukan untuk pemanggilan yang diautentikasi atau tidak diautentikasi. Untuk mengetahui informasi selengkapnya, lihat Peran dan izin untuk target Cloud Run.
Buat pemicu
Anda dapat membuat pemicu Eventarc menggunakan Google Cloud CLI atau melalui konsol Google Cloud .
Konsol
- Di konsol Google Cloud , buka halaman Pemicu Eventarc.
- Klik Create trigger.
- Ketik Trigger name.
Ini adalah ID pemicu dan harus dimulai dengan huruf. Nama ini dapat berisi hingga 63 huruf kecil, angka, atau tanda hubung.
- Untuk Jenis pemicu, pilih Sumber Google.
- Pilih Penyedia acara.
Ini adalah layanan Google yang menjadi sumber peristiwa melalui log auditnya. Misalnya, pilih BigQuery.
Perhatikan bahwa nama penyedia peristiwa yang digunakan dalam Google Cloud dokumentasi terkait mungkin tidak memiliki awalan Cloud atau Google Cloud. Misalnya, di konsol, Memorystore for Redis disebut sebagai Google Cloud Memorystore for Redis.
- Di daftar Jenis peristiwa, dari peristiwa melalui Cloud Audit Logs, pilih jenis peristiwa.
- Pilih salah satu opsi berikut:
- Semua resource—Ini adalah opsi default dan mencakup resource yang dibuat secara dinamis yang memiliki ID yang dibuat pada waktu pembuatan.
- Resource tertentu—Anda harus memberikan nama lengkap resource.
- Pola jalur—Anda dapat
memfilter resource menggunakan pola jalur.
Misalnya, ketik
projects/_/buckets/eventarc-bucket/objects/random.txt
atau ketikprojects/_/buckets/**/r*.txt
.
- Untuk menentukan encoding payload peristiwa, di daftar Jenis konten data peristiwa, pilih application/json atau application/protobuf.
Perhatikan bahwa payload peristiwa yang diformat dalam JSON lebih besar daripada yang diformat dalam Protobuf. Hal ini dapat memengaruhi keandalan, bergantung pada tujuan peristiwa dan batas ukuran peristiwa. Untuk mengetahui informasi selengkapnya, lihat Masalah umum.
- Di daftar Region, pilih region.
Pemicu Cloud Audit Logs untuk Eventarc tersedia di region tertentu dan di region global, tetapi tidak tersedia di lokasi dual-region dan multi-region. Untuk menghindari masalah performa dan residensi data yang disebabkan oleh pemicu global, Google merekomendasikan agar lokasi cocok dengan layanan yang menghasilkan peristiwa. Google Cloud Untuk mengetahui informasi selengkapnya, lihat Lokasi Eventarc.
Jika menentukan lokasi global, Anda akan menerima peristiwa dari semua lokasi yang menghasilkan kecocokan untuk filter peristiwa. Misalnya, dengan membuat pemicu Eventarc global, Anda dapat menerima peristiwa dari resource di multi-region Uni Eropa dan Amerika Serikat.
Perhatikan bahwa ada masalah umum terkait pemicu Cloud Audit Logs untuk Compute Engine yang menyebabkan peristiwa berasal dari satu region:
us-central1
. Hal ini terlepas dari lokasi sebenarnya instance virtual machine. Saat membuat pemicu, tetapkan lokasi pemicu keus-central1
atauglobal
. - Pilih Service account yang akan memanggil layanan
atau alur kerja Anda.
Atau, Anda dapat membuat akun layanan baru.
Ini menentukan email akun layanan Identity and Access Management (IAM) yang terkait dengan pemicu dan yang sebelumnya Anda beri peran tertentu yang diperlukan oleh Eventarc.
- Dalam daftar Tujuan peristiwa, pilih Cloud Run.
- Pilih layanan.
Ini adalah nama layanan yang menerima peristiwa untuk pemicu. Layanan harus berada dalam project yang sama dengan pemicu dan akan menerima peristiwa sebagai permintaan POST HTTP yang dikirim ke jalur URL root-nya (
/
), setiap kali peristiwa dihasilkan. - Secara opsional, Anda dapat menentukan jalur URL Layanan untuk mengirim
permintaan masuk.
Ini adalah jalur relatif pada layanan tujuan tempat peristiwa untuk pemicu harus dikirim. Misalnya:
/
,/route
,route
,route/subroute
. - Secara opsional, untuk menambahkan label, Anda dapat mengklik Apa yang dimaksud dengan label? Tambahkan label. Label adalah pasangan nilai kunci yang membantu Anda mengaturGoogle Cloud resource. Untuk mengetahui informasi selengkapnya, lihat
- Klik Buat.
Setelah pemicu dibuat, filter sumber peristiwa tidak dapat diubah. Sebagai gantinya, buat pemicu baru dan hapus pemicu lama. Untuk mengetahui informasi selengkapnya, lihat Mengelola pemicu.
gcloud
Anda dapat membuat pemicu dengan menjalankan perintah gcloud eventarc triggers create
bersama dengan flag wajib dan opsional.
gcloud eventarc triggers create TRIGGER \ --location=LOCATION \ --destination-run-service=DESTINATION_RUN_SERVICE \ --destination-run-region=DESTINATION_RUN_REGION \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=SERVICE_NAME" \ --event-filters="methodName=METHOD_NAME" \ --event-data-content-type="EVENT_DATA_CONTENT_TYPE" \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Ganti kode berikut:
TRIGGER
: ID pemicu atau ID yang memenuhi syarat sepenuhnya.LOCATION
: lokasi pemicu Eventarc. Atau, Anda dapat menetapkan propertieventarc/location
; misalnyagcloud config set eventarc/location us-central1
.Pemicu Cloud Audit Logs untuk Eventarc tersedia di region tertentu dan di region global, tetapi tidak tersedia di lokasi dual-region dan multi-region. Untuk menghindari masalah performa dan residensi data yang disebabkan oleh pemicu global, Google merekomendasikan agar lokasi cocok dengan layanan yang menghasilkan peristiwa. Google Cloud Untuk mengetahui informasi selengkapnya, lihat Lokasi Eventarc.
Jika menentukan lokasi global, Anda akan menerima peristiwa dari semua lokasi yang menghasilkan kecocokan untuk filter peristiwa. Misalnya, dengan membuat pemicu Eventarc global, Anda dapat menerima peristiwa dari resource di multi-region Uni Eropa dan Amerika Serikat.
Perhatikan bahwa ada masalah umum terkait pemicu Cloud Audit Logs untuk Compute Engine yang menyebabkan peristiwa berasal dari satu region:
us-central1
. Hal ini terlepas dari lokasi sebenarnya instance virtual machine. Saat membuat pemicu, tetapkan lokasi pemicu keus-central1
atauglobal
.-
DESTINATION_RUN_SERVICE
: nama layanan Cloud Run yang menerima peristiwa untuk pemicu. Layanan dapat berada di salah satu lokasi yang didukung Cloud Run dan tidak harus berada di lokasi yang sama dengan pemicu. Namun, layanan harus berada dalam project yang sama dengan pemicu dan akan menerima peristiwa sebagai permintaan POST HTTP yang dikirim ke jalur URL root-nya (/
), setiap kali peristiwa dibuat. -
DESTINATION_RUN_REGION
: (opsional) region tempat layanan Cloud Run tujuan dapat ditemukan. Jika tidak ditentukan, diasumsikan bahwa layanan berada di region yang sama dengan pemicu.
SERVICE_NAME
: ID layanan Google CloudMETHOD_NAME
: ID operasi
-
EVENT_DATA_CONTENT_TYPE
: (opsional) encoding payload peristiwa. Nilainya dapat berupaapplication/json
atauapplication/protobuf
. Encoding default-nya adalahapplication/json
.Perhatikan bahwa payload peristiwa yang diformat dalam JSON lebih besar daripada yang diformat dalam Protobuf. Hal ini dapat memengaruhi keandalan, bergantung pada tujuan peristiwa dan batas ukuran peristiwa. Untuk mengetahui informasi selengkapnya, lihat Masalah umum.
SERVICE_ACCOUNT_NAME
: nama akun layanan yang dikelola pengguna Anda.PROJECT_ID
: ID project Google Cloud Anda.
Catatan:
Flag ini diperlukan:
--event-filters="type=google.cloud.audit.log.v1.written"
--event-filters="serviceName=VALUE"
--event-filters="methodName=VALUE"
Secara opsional, filter peristiwa untuk resource tertentu menggunakan flag
--event-filters="resourceName=VALUE"
dan tentukan jalur lengkap ke resource. Jangan sertakan tanda untuk resource yang dibuat secara dinamis yang memiliki ID yang dibuat pada saat pembuatan. Atau, filter peristiwa untuk sekumpulan resource menggunakan tanda--event-filters-path-pattern="resourceName=VALUE"
dan tentukan pola jalur resource.
- Setiap pemicu dapat memiliki beberapa filter peristiwa, yang dipisahkan dengan koma dalam satu
--event-filters
=[ATTRIBUTE
=VALUE
,...] flag, atau Anda dapat mengulangi flag untuk menambahkan lebih banyak filter. Hanya peristiwa yang cocok dengan semua filter yang dikirim ke tujuan. Karakter pengganti dan ekspresi reguler tidak didukung. - Setelah pemicu dibuat, jenis filter peristiwa tidak dapat diubah. Untuk jenis peristiwa yang berbeda, Anda harus membuat pemicu baru.
- Flag
--service-account
digunakan untuk menentukan email akun layanan Identity and Access Management (IAM) yang terkait dengan pemicu. - Secara opsional, tentukan jalur relatif pada layanan Cloud Run tujuan yang akan menerima peristiwa untuk pemicu dengan menggunakan flag
--destination-run-path
.
Contoh:
gcloud eventarc triggers create helloworld-trigger \
--location=us-central1 \
--destination-run-service=helloworld-events \
--destination-run-region=us-central1 \
--event-filters="type=google.cloud.audit.log.v1.written" \
--event-filters="serviceName=bigquery.googleapis.com" \
--event-filters="methodName=google.cloud.bigquery.v2.JobService.InsertJob" \
--service-account=${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com
Tindakan ini akan membuat pemicu bernama helloworld-trigger
untuk log audit yang
ditulis oleh bigquery.googleapis.com
dan untuk operasi yang diidentifikasi sebagai
google.cloud.bigquery.v2.JobService.InsertJob
.
Terraform
Anda dapat membuat pemicu untuk tujuan Cloud Run menggunakan Terraform. Untuk mengetahui detailnya, lihat Membuat pemicu menggunakan Terraform.
Mencantumkan pemicu
Anda dapat mengonfirmasi pembuatan pemicu dengan mencantumkan pemicu Eventarc menggunakan Google Cloud CLI atau melalui konsol Google Cloud .
Konsol
Di konsol Google Cloud , buka halaman Pemicu Eventarc.
Halaman ini mencantumkan pemicu Anda di semua lokasi, dan menyertakan detail seperti nama, wilayah, penyedia peristiwa, tujuan, dan lainnya.
Untuk memfilter pemicu stres Anda:
- Klik Filter atau kolom Pemicu filter.
- Di daftar Properti, pilih opsi untuk memfilter pemicu.
Anda dapat memilih satu properti atau menggunakan operator logika
OR
untuk menambahkan lebih banyak properti.Untuk mengurutkan pemicu, di samping judul kolom yang didukung, klik
Urutkan.
gcloud
Jalankan perintah berikut untuk mencantumkan pemicu Anda:
gcloud eventarc triggers list --location=-
Perintah ini mencantumkan pemicu Anda di semua lokasi, dan menyertakan detail seperti nama, jenis, tujuan, dan status.