Eventarc memungkinkan Anda membangun arsitektur berbasis peristiwa tanpa harus menerapkan, menyesuaikan, atau memelihara infrastruktur yang mendasarinya.
Eventarc ditawarkan dalam dua edisi: Eventarc Advanced dan Eventarc Standard. Kedua edisi ini menawarkan solusi eventing yang skalabel, serverless, dan terkelola sepenuhnya yang memungkinkan Anda merutekan peristiwa secara asinkron dari sumber ke target. Untuk mengetahui informasi selengkapnya, lihat Memilih Eventarc Advanced atau Eventarc Standard.
Eventarc Standard menawarkan solusi standar untuk mengelola alur perubahan status, yang disebut peristiwa, antara microservice yang dipisahkan. Saat dipicu, Eventarc Standard merutekan peristiwa ini ke berbagai tujuan (dalam dokumen ini, lihat Tujuan peristiwa) sambil mengelola pengiriman, keamanan, otorisasi, kemampuan observasi, dan penanganan error untuk Anda.
Anda dapat mengelola Eventarc dari Google Cloud konsol, dari command line menggunakan gcloud CLI, atau menggunakan Eventarc API.
1 Peristiwa dari penyedia Google dikirim langsung dari sumber (misalnya, Cloud Storage) atau melalui entri Cloud Audit Logs, dan menggunakan Pub/Sub sebagai lapisan transpor. Peristiwa dari sumber Pub/Sub dapat menggunakan topik Pub/Sub yang ada atau Eventarc akan otomatis membuat topik dan mengelolanya untuk Anda.
2 Peristiwa untuk tujuan Google Kubernetes Engine (GKE)—termasuk layanan penayangan Knative yang berjalan di cluster GKE—menggunakan penerus peristiwa Eventarc untuk mengambil peristiwa baru dari Pub/Sub dan meneruskannya ke tujuan. Komponen ini bertindak sebagai perantara antara lapisan transpor Pub/Sub dan layanan target. Komponen ini berfungsi pada layanan yang ada dan juga mendukung layanan pensinyalan (termasuk yang tidak diekspos di luar cluster yang terkelola sepenuhnya) sekaligus menyederhanakan penyiapan dan pemeliharaan. Perhatikan bahwa siklus proses penerus peristiwa dikelola oleh Eventarc, dan jika Anda tidak sengaja menghapus penerus peristiwa, Eventarc akan memulihkan komponen ini.
3 Peristiwa untuk eksekusi alur kerja diubah dan diteruskan ke alur kerja sebagai argumen runtime. Workflows dapat menggabungkan dan mengorkestrasi Google Cloud layanan API berbasis HTTP dan dalam urutan yang Anda tentukan.
4 Semua fungsi berbasis peristiwa di Cloud Run Functions menggunakan pemicu Eventarc untuk mengirimkan peristiwa. Anda dapat mengonfigurasi pemicu Eventarcsaat men-deploy Cloud Run Function menggunakan antarmuka Cloud Run Functions.
Kasus penggunaan utama
Eventarc mendukung banyak kasus penggunaan untuk aplikasi tujuan. Berikut beberapa contohnya:
| Mengonfigurasi dan memantau |
|
| Mengharmoniskan |
|
| Menganalisis |
|
Peristiwa
Peristiwa adalah rekaman data yang menyatakan kejadian dan konteksnya. Peristiwa adalah unit komunikasi terpisah, yang independen dari peristiwa lainnya. Misalnya, peristiwa dapat menunjukkan perubahan pada data dalam database, file yang ditambahkan ke sistem penyimpanan, atau tugas terjadwal.
Lihat Jenis peristiwa Google yang didukung oleh Eventarc.
Penyedia peristiwa
Peristiwa dirutekan dari penyedia peristiwa (sumber) ke konsumen peristiwa yang tertarik. Perutean dilakukan berdasarkan informasi yang terdapat dalam peristiwa, tetapi peristiwa tidak mengidentifikasi tujuan perutean tertentu. Eventarc mendukung peristiwa dari lebih dari 130 penyedia Google. Penyedia ini mengirimkan peristiwa (misalnya, update pada objek di bucket Cloud Storage atau pesan yang dipublikasikan ke topik Pub/Sub) langsung dari sumber, atau melalui entri Cloud Audit Logs.
Tujuan peristiwa
Peristiwa dirutekan ke tujuan tertentu (target) yang dikenal sebagai penerima peristiwa (atau konsumen) melalui langganan push Pub/Sub.
Cloud Run
Pelajari cara membuat layanan penerima peristiwa yang dapat di-deploy ke Cloud Run.
Untuk menentukan cara terbaik merutekan peristiwa ke layanan Cloud Run, lihat Rute peristiwa.
Cloud Run Functions
Semua fungsi berbasis peristiwa di Cloud Run Functions menggunakan pemicu Eventarc untuk mengirimkan peristiwa. Pemicu Eventarc memungkinkan fungsi dipicu oleh jenis peristiwa apa pun yang didukung oleh Eventarc. Anda dapat mengonfigurasi pemicu Eventarc saat men-deploy Cloud Run Function menggunakan antarmuka Cloud Run Functions.
GKE
Eventarc mendukung pembuatan pemicu yang menargetkan layanan Google Kubernetes Engine (GKE). Hal ini mencakup endpoint publik dari layanan pribadi dan publik yang berjalan di cluster GKE.
Agar Eventarc dapat menargetkan dan mengelola layanan di cluster tertentu, Anda harus memberikan izin yang diperlukan ke akun layanan Eventarc apa pun.
Anda harus mengaktifkan Workload Identity Federation for GKE di cluster GKE tempat layanan tujuan berjalan. Workload Identity Federation for GKE is diperlukan untuk menyiapkan penerus peristiwa dengan benar dan merupakan cara yang direkomendasikan untuk mengakses Google Cloud layanan dari aplikasi yang berjalan dalam GKE karena properti keamanan dan pengelolaan yang lebih baik. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan Workload Identity.
Endpoint HTTP internal dalam jaringan VPC
Anda dapat mengonfigurasi perutean peristiwa ke endpoint HTTP internal dalam jaringan Virtual Private Cloud (VPC). Untuk mengonfigurasi pemicu, Anda juga harus memberikan ID lampiran jaringan. Untuk mengetahui informasi selengkapnya, lihat Merutekan peristiwa ke endpoint HTTP internal dalam jaringan VPC.
Workflows
Anda dapat memicu eksekusi alur kerja. Workflows memerlukan email akun layanan IAM yang akan digunakan oleh pemicu Eventarc untuk memanggil eksekusi alur kerja. Sebaiknya gunakan akun layanan dengan hak istimewa terendah yang diperlukan untuk mengakses resource yang diperlukan. Untuk mengetahui informasi selengkapnya, lihat Membuat dan mengelola akun layanan.
Format dan library peristiwa
Eventarc mengirimkan peristiwa, terlepas dari penyedia, ke tujuan target dalam format CloudEvents menggunakan permintaan HTTP dalam mode konten biner. CloudEvents adalah spesifikasi untuk mendeskripsikan metadata peristiwa dengan cara yang umum.
Bergantung pada penyedia peristiwa, Anda dapat menentukan encoding data payload peristiwa sebagai application/json atau application/protobuf. Protocol Buffers (atau
Protobuf) adalah mekanisme yang tidak bergantung bahasa dan tidak bergantung platform yang dapat diperluas untuk
membuat serialisasi data terstruktur. Perhatikan hal berikut:
- Untuk sumber kustom atau penyedia pihak ketiga, atau untuk peristiwa langsung dari Pub/Sub, opsi pemformatan ini tidak didukung.
- Payload peristiwa yang diformat dalam JSON lebih besar daripada yang diformat dalam Protobuf, dan hal ini dapat memengaruhi keandalan bergantung pada tujuan peristiwa dan batas ukuran peristiwa. Untuk mengetahui informasi selengkapnya, lihat Masalah umum.
Tujuan target seperti Cloud Run Functions, Cloud Run, dan GKE menggunakan peristiwa dalam format HTTP. Untuk tujuan Workflows, layanan Workflows mengonversi peristiwa ke objek JSON, dan meneruskan peristiwa ke eksekusi alur kerja sebagai argumen runtime.
Menggunakan cara standar untuk mendeskripsikan metadata peristiwa memastikan konsistensi, aksesibilitas, dan portabilitas. Konsumen peristiwa dapat membaca peristiwa ini secara langsung, atau Anda dapat menggunakan Cloud Client Libraries dalam berbagai bahasa (termasuk C++, C#, Go, Java, Node.js, PHP, Python, dan Ruby) untuk membaca dan mengurai peristiwa. Ada juga sekumpulan CloudEvents SDK khusus bahasa .
Struktur isi HTTP untuk semua peristiwa tersedia di repositori GitHub Google CloudEvents.
Kompatibilitas mundur
Eventarc menganggap penambahan atribut berikut dan kolom kompatibel dengan versi sebelumnya:
- Atribut pemfilteran opsional atau atribut khusus output
- Kolom opsional ke payload peristiwa
Pemicu Eventarc
Peristiwa terjadi terlepas dari apakah tujuan target bereaksi terhadapnya atau tidak. Anda membuat respons terhadap peristiwa dengan pemicu. Pemicu adalah pernyataan bahwa Anda tertarik pada suatu peristiwa atau rangkaian peristiwa tertentu. Saat membuat pemicu, Anda menentukan filter untuk pemicu yang memungkinkan Anda menangkap dan menindaklanjuti peristiwa tertentu tersebut, termasuk peruteannya dari sumber peristiwa ke tujuan target. Untuk mengetahui informasi selengkapnya, lihat representasi REST resource pemicu dan Penyedia dan tujuan peristiwa.
Perhatikan bahwa langganan Pub/Sub yang dibuat untuk Eventarc bertahan terlepas dari aktivitasnya dan tidak akan habis masa berlakunya. Untuk mengubah properti langganan, lihat Properti langganan.
Eventarc mendukung pemicu untuk jenis peristiwa berikut:
| Peristiwa Cloud Audit Logs (CAL) | |
|---|---|
| Deskripsi | Cloud Audit Logs menyediakan log audit Aktivitas Admin dan
Akses Data untuk setiap project, folder, dan organisasi Cloud.
Google Cloud layanan menulis entri ke log ini. Anda dapat membuat
filter untuk pemicu Eventarc menggunakan nilai serviceName
dan methodName di log audit. Untuk nilai yang tepat,
lihat
Google Cloud layanan dengan log audit.
Untuk mengetahui informasi selengkapnya, lihat
Menentukan filter peristiwa untuk Cloud Audit Logs. |
| Jenis filter peristiwa | Pemicu Eventarc dengan
type=google.cloud.audit.log.v1.written mengirimkan permintaan ke
layanan atau alur kerja Anda saat log audit dibuat yang cocok dengan
kriteria filter pemicu. |
| Peristiwa langsung | |
| Deskripsi | Eventarc dapat dipicu oleh
berbagai peristiwa langsung seperti update pada bucket Cloud Storage, update pada template Firebase Remote Config, atau perubahan pada
resource
di Google Cloud layanan.
Eventarc juga dapat dipicu oleh pesan yang dipublikasikan ke topik Pub/Sub. Pub/Sub adalah bus pesan yang didistribusikan secara global yang secara otomatis diskalakan sesuai kebutuhan Anda. Karena Eventarc dapat dipanggil oleh pesan pada topik Pub/Sub, Anda dapat mengintegrasikan Eventarc dengan layanan lain yang mendukung Pub/Sub sebagai tujuan. |
| Jenis filter peristiwa | Pemicu Eventarc dengan
jenis filter peristiwa tertentu mengirimkan permintaan ke layanan atau alur kerja Anda saat
peristiwa terjadi yang cocok dengan kriteria filter pemicu; misalnya,
type=google.cloud.storage.object.v1.finalized (saat objek
dibuat di bucket Cloud Storage), atau
type=google.cloud.pubsub.topic.v1.messagePublished (saat pesan
dipublikasikan ke topik Pub/Sub yang ditentukan).
|
Lokasi pemicu
Google Cloud layanan seperti Cloud Storage dapat disiapkan sebagai regional atau multi-regional. Beberapa layanan, seperti Cloud Build dapat disiapkan secara global.
Eventarc memungkinkan Anda membuat pemicu regional atau, untuk beberapa peristiwa, Anda dapat membuat pemicu global dan menerima peristiwa dari semua region. Untuk mengetahui informasi selengkapnya, lihat Memahami lokasi Eventarc.
Anda harus menentukan lokasi pemicu Eventarc agar sesuai dengan lokasi Google Cloud layanan yang menghasilkan peristiwa dan menghindari masalah performa dan residensi data yang disebabkan oleh pemicu global.
Anda dapat menentukan lokasi pemicu menggunakan flag --location dengan setiap perintah.
Untuk tujuan Cloud Run, jika flag --destination-run-region tidak ditentukan, diasumsikan bahwa layanan berada di region yang sama dengan pemicu. Untuk mengetahui informasi selengkapnya, lihat
referensi Google Cloud CLI.
Keandalan dan pengiriman
Ekspektasi pengiriman adalah sebagai berikut:
- Peristiwa yang menggunakan Cloud Audit Logs dikirim dalam waktu kurang dari satu menit. (Perhatikan bahwa meskipun pemicu Cloud Audit Logs langsung dibuat, diperlukan waktu hingga dua menit agar pemicu diterapkan dan memfilter peristiwa.)
- Peristiwa yang menggunakan Pub/Sub dikirim dalam hitungan detik.
Tidak ada jaminan pengiriman sesuai urutan, first-in-first-out. Perhatikan bahwa memiliki pengurutan yang ketat akan merusak fitur ketersediaan dan skalabilitas Eventarc yang sesuai dengan fitur lapisan transpornya, Cloud Pub/Sub. Untuk mengetahui informasi selengkapnya, lihat Mengurutkan pesan.
Latensi dan throughput adalah upaya terbaik. Jumlah tersebut bervariasi berdasarkan beberapa faktor, termasuk apakah pemicu Eventarc bersifat regional, multi-regional, atau global; konfigurasi layanan tertentu; dan beban jaringan pada resource di Google Cloud region.
Perhatikan bahwa ada kuota dan batas penggunaan yang berlaku secara umum untuk Eventarc. Ada juga kuota dan batas penggunaan yang khusus untuk Workflows.
Kebijakan percobaan ulang peristiwa
Karakteristik percobaan ulang Eventarc sesuai dengan karakteristik lapisan transpornya, Cloud Pub/Sub. Durasi retensi pesan default yang ditetapkan oleh Eventarc adalah 24 jam dengan penundaan backoff eksponensial.
Anda dapat memperbarui kebijakan percobaan ulang melalui langganan Pub/Sub yang terkait dengan pemicu Eventarc. Untuk mengetahui informasi selengkapnya, lihat Mencoba ulang peristiwa.
Secara opsional, untuk tujuan Cloud Run (termasuk Cloud Run Functions), Anda dapat mengonfigurasi satu upaya pengiriman tanpa percobaan ulang. Ini adalah konfigurasi default saat Anda menggunakan Google Cloud konsol untuk membuat pemicu Eventarc untuk tujuan Cloud Run. Untuk mengetahui informasi selengkapnya, lihat Membuat pemicu dengan Eventarc.
Kemampuan observasi
Google Cloud Observability menyediakan alat pemantauan, logging, dan diagnostik. Alat ini dapat membantu Anda memantau dan menganalisis aktivitas dan pertumbuhan Eventarc, serta memahami perilaku, kondisi, dan performa aplikasi Anda. Untuk mengetahui informasi selengkapnya, lihat Kemampuan observasi di Eventarc.
Log mendetail untuk Eventarc, Cloud Run, Cloud Run Functions, GKE, Pub/Sub, dan Workflows tersedia dari Cloud Audit Logs.
Disaster recovery
Anda dapat memanfaatkan zona dan region untuk mencapai keandalan jika terjadi pemadaman. Untuk mempelajari lebih lanjut cara memastikan bahwa tujuan RTO (Recovery Time Objective) dan RPO (Recovery Point Objective) terpenuhi untuk waktu pencadangan dan pemulihan saat menggunakan Eventarc, lihat Merancang disaster recovery untuk pemadaman infrastruktur cloud.
Standar kepatuhan
Eventarc Standard mematuhi sertifikasi dan standar tertentu . Untuk menghindari penggunaan resource Eventarc Advanced yang tidak sesuai, Anda dapat membuat kebijakan organisasi kustom yang menonaktifkan resource Eventarc Advanced. Untuk mengetahui informasi selengkapnya, lihat Menonaktifkan resource Eventarc Advanced.
Langkah berikutnya
- Pelajari lebih lanjut pemrosesan peristiwa serverless
- Coba Codelab
- Buat pemicu untuk penyedia, jenis peristiwa, dan tujuan tertentu
- Memecahkan masalah