Pemicu Eventarc mendeklarasikan minat Anda pada peristiwa atau kumpulan peristiwa tertentu. Anda dapat mengonfigurasi perutean peristiwa dengan menentukan filter untuk pemicu, termasuk sumber peristiwa, dan alur kerja target.
Peristiwa dikirim dalam format CloudEvents melalui permintaan HTTP. Layanan Workflows mengonversi peristiwa menjadi objek JSON (dengan mengikuti spesifikasi CloudEvents) dan meneruskan peristiwa ke dalam eksekusi alur kerja sebagai argumen runtime alur kerja. Pastikan ukuran peristiwa tidak melebihi 512 KB. Peristiwa yang lebih besar dari ukuran argumen Workflows maksimum tidak akan memicu eksekusi alur kerja.
Petunjuk ini menunjukkan cara mengonfigurasi perutean peristiwa sehingga eksekusi alur kerja Anda dipicu saat log audit dibuat yang cocok dengan kriteria filter pemicu. Jenis peristiwa ini berlaku untuk semua penyedia peristiwa. Untuk 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 pencatatan peristiwa yang dipicu saat log audit dibuat yang cocok dengan kriteria filter pemicu, lihat Menentukan filter peristiwa untuk Cloud Audit Logs.
Bersiap untuk membuat pemicu
Sebelum membuat pemicu Eventarc untuk alur kerja target, selesaikan tugas-tugas berikut.
Konsol
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat Google Cloud project.
Aktifkan Eventarc, Eventarc Publishing, Workflows, dan Workflow Executions 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 alur kerja target.
Di Konsol Google Cloud, buka halaman Akun layanan.
Pilih project Anda.
Di kolom Nama akun layanan, masukkan nama. Konsol Google Cloud akan mengisi kolom ID akun layanan 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, pada daftar Select a role, pilih peran Identity and Access Management (IAM) yang diperlukan untuk diberikan ke akun layanan Anda. Untuk mengetahui informasi selengkapnya, lihat Peran dan izin untuk target Workflows.
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 Eventarc, Eventarc Publishing, Workflows, dan Workflow Executions API:
gcloud services enable eventarc.googleapis.com \ eventarcpublishing.googleapis.com \ workflows.googleapis.com \ workflowexecutions.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 sehingga Eventarc dapat mengelola peristiwa untuk alur kerja target.
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, serta dapat berisi karakter alfanumerik huruf kecil dan tanda hubung. Setelah membuat akun layanan, Anda tidak dapat mengubah namanya.Memberikan peran atau izin Identity and Access Management (IAM) yang diperlukan. Untuk mengetahui informasi selengkapnya, lihat Peran dan izin untuk target Workflows.
Buat pemicu
Anda dapat membuat pemicu Eventarc dengan alur kerja yang di-deploy sebagai penerima peristiwa menggunakan Google Cloud CLI (gcloud
atau Terraform), atau melalui Konsol Google Cloud.
Konsol
- Di Konsol Google Cloud, buka halaman Triggers Eventarc.
- Klik Create trigger.
- Ketik Nama pemicu.
Ini adalah ID pemicu dan harus diawali dengan huruf. Kolom 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 merupakan 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.
- Dalam daftar Event type, dari peristiwa melalui Cloud Audit Logs, pilih jenis peristiwa.
- Pilih salah satu opsi berikut:
- Resource apa pun—Ini adalah setelan default dan mencakup resource yang dibuat secara dinamis yang memiliki ID yang dihasilkan pada waktu pembuatan.
- Resource spesifik—Anda harus memasukkan 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, dalam daftar Jenis konten data peristiwa, pilih application/json atau application/protobuf.
Perhatikan bahwa payload peristiwa yang diformat dalam JSON lebih besar dari yang diformat dalam Protobuf. Hal ini dapat memengaruhi keandalan, bergantung pada tujuan peristiwa Anda dan batasnya pada 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 Google Cloud layanan yang menghasilkan peristiwa. 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 AS.
Perlu diperhatikan bahwa ada masalah umum pada pemicu Cloud Audit Logs untuk Compute Engine yang menghasilkan peristiwa yang berasal dari satu region:
us-central1
. Di mana pun instance virtual machine berada. 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.
Tindakan ini menentukan email akun layanan Identity and Access Management (IAM) yang terkait dengan pemicu dan tempat Anda sebelumnya memberikan peran tertentu yang diperlukan oleh Eventarc.
- Dalam daftar Event destination, pilih Workflows.
- Pilih alur kerja.
Ini adalah nama alur kerja yang akan menerima peristiwa. Peristiwa untuk eksekusi alur kerja ditransformasi dan diteruskan ke alur kerja sebagai argumen runtime.
Untuk mengetahui informasi selengkapnya, lihat Membuat pemicu untuk Workflows.
- Jika ingin, untuk menambahkan label, Anda dapat mengklik Apa yang dimaksud dengan label? Tambahkan label. Label adalah key-value pair yang membantu Anda mengatur Google 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 yang 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-workflow=DESTINATION_WORKFLOW \ --destination-workflow-location=DESTINATION_WORKFLOW_LOCATION \ --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="MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com"
Ganti kode berikut:
TRIGGER
: ID pemicu atau ID yang sepenuhnya memenuhi syarat.-
LOCATION
: lokasi pemicu Eventarc. Atau, Anda dapat menetapkan propertieventarc/location
; misalnya,gcloud config set eventarc/location us-central1
.Eventarc tersedia di lokasi tertentu dan di lokasi
global
, tetapi tidak tersedia di lokasi dual-region dan multi-region. Untuk menghindari masalah performa dan residensi data yang disebabkan oleh pemicu global, sebaiknya lokasi sesuai dengan layananGoogle Cloud yang menghasilkan peristiwa.Jika Anda menentukan lokasi
global
, Anda akan menerima peristiwa dari semua lokasi yang cocok dengan filter peristiwa tersebut. Misalnya, dengan membuat pemicu Eventarc global, Anda dapat menerima peristiwa dari resource seperti bucket Cloud Storage di multi-region EU dan AS. -
DESTINATION_WORKFLOW
: ID alur kerja yang di-deploy yang menerima peristiwa dari pemicu. Alur kerja dapat berada di salah satu lokasi yang didukung Workflows dan tidak perlu berada di lokasi yang sama dengan pemicu. Namun, alur kerja harus berada dalam project yang sama dengan pemicu. -
DESTINATION_WORKFLOW_LOCATION
(opsional): lokasi tempat alur kerja tujuan di-deploy. Jika tidak ditentukan, alur kerja akan diasumsikan berada di lokasi yang sama dengan pemicu.
SERVICE_NAME
: ID layanan Google CloudMETHOD_NAME
: ID operasi-
EVENT_DATA_CONTENT_TYPE
: (opsional) encoding payload peristiwa. ID ini dapat berupaapplication/json
atauapplication/protobuf
. Encoding default-nya adalahapplication/json
.Perhatikan bahwa payload peristiwa yang diformat dalam JSON lebih besar dari yang diformat dalam Protobuf. Hal ini dapat memengaruhi keandalan, bergantung pada tujuan peristiwa Anda dan batas ukuran peristiwa. Untuk mengetahui informasi selengkapnya, lihat Masalah umum.
-
SERVICE_ACCOUNT_NAME
: nama akun layanan IAM yang Anda buat, yang Anda beri peran tertentu yang diperlukan oleh Workflows. -
PROJECT_ID
: Google Cloud project ID Anda
Catatan:
- Tanda berikut diperlukan:
--event-filters="type=google.cloud.audit.log.v1.written"
--event-filters="serviceName=VALUE"
--event-filters="methodName=VALUE"
- Setelah pemicu dibuat,
--event-filters="type=google.cloud.audit.log.v1.written"
tidak dapat diubah. Untuk jenis peristiwa yang berbeda, Anda harus membuat pemicu baru. -
--service-account
: Email akun layanan IAM yang akan digunakan pemicu Eventarc untuk memanggil eksekusi alur kerja, dan menerima log audit cloud. Sebaiknya gunakan akun layanan dengan hak istimewa terendah yang diperlukan untuk mengakses resource yang diperlukan. Untuk mempelajari akun layanan lebih lanjut, lihat Membuat dan mengelola akun layanan. - Untuk daftar peristiwa log audit yang didukung oleh Eventarc, termasuk nilai
serviceName
danmethodName
, lihat Peristiwa yang didukung oleh Eventarc. -
Setiap pemicu dapat memiliki beberapa filter peristiwa, yang dipisahkan koma dalam satu tanda
--event-filters
=[ATTRIBUTE
=VALUE
,...], atau Anda dapat mengulangi tanda tersebut untuk menambahkan lebih banyak filter. Hanya peristiwa yang cocok dengan semua filter yang dikirim ke tujuan. Karakter pengganti dan ekspresi reguler tidak didukung.
Lihat Menentukan filter peristiwa untuk Cloud Audit Logs.
- Secara opsional, Anda dapat memfilter peristiwa untuk resource tertentu menggunakan
tanda
--event-filters="resourceName=VALUE"
dan menentukan jalur lengkap ke resource. Hapus flag untuk resource yang dibuat secara dinamis yang memiliki ID yang dihasilkan pada waktu pembuatan. Atau, Anda dapat memfilter peristiwa untuk sekumpulan resource menggunakan flag--event-filters-path-pattern="resourceName=VALUE"
dan menentukan pola jalur resource. - Secara default, langganan Pub/Sub yang dibuat untuk Eventarc akan tetap ada terlepas dari aktivitasnya dan tidak memiliki tanggal habis masa berlaku. Untuk mengubah durasi tidak aktif, lihat Properti langganan.
Contoh:
gcloud eventarc triggers create helloworld-trigger \ --location=us-central1 \ --destination-workflow=my-workflow \ --destination-workflow-location=europe-west4 \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=bigquery.googleapis.com" \ --event-filters="methodName=jobservice.jobcompleted" \ --service-account="${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"
Tindakan ini akan membuat pemicu yang disebut helloworld-trigger
untuk log audit yang
ditulis oleh bigquery.googleapis.com
dan untuk operasi yang diidentifikasi sebagai
jobservice.jobcompleted
.
Terraform
Anda dapat membuat pemicu untuk alur kerja menggunakan Terraform. Untuk mengetahui detailnya, lihat Memicu alur kerja menggunakan Eventarc dan Terraform.
Membuat daftar 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 Triggers Eventarc.
Halaman ini mencantumkan pemicu Anda di semua lokasi, dan menyertakan detail seperti nama, wilayah, penyedia peristiwa, tujuan, dan lainnya.
Untuk memfilter pemicu:
- 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 membuat daftar pemicu:
gcloud eventarc triggers list --location=-
Perintah ini mencantumkan pemicu Anda di semua lokasi, dan menyertakan detail seperti nama, jenis, tujuan, dan status.