Eventarc memungkinkan Anda mem-build arsitektur berbasis peristiwa tanpa harus menerapkan, menyesuaikan, atau memelihara infrastruktur yang mendasarinya.
Eventarc ditawarkan dalam dua edisi: Eventarc Advanced dan Eventarc Standard. Kedua edisi menawarkan solusi peristiwa yang skalabel, serverless, dan terkelola sepenuhnya yang memungkinkan Anda merutekan peristiwa secara asinkron dari sumber ke target. Untuk informasi selengkapnya, lihat Memilih Eventarc Advanced atau Eventarc Standard.
Eventarc Standard menawarkan solusi standar untuk mengelola alur perubahan status, yang disebut peristiwa, di antara microservice yang dipisahkan. Saat dipicu, Eventarc Standard akan 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 konsol Google Cloud, dari command line menggunakan gcloud CLI, atau dengan 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 penerusan peristiwa Eventarc untuk mengambil peristiwa baru dari Pub/Sub dan meneruskannya ke tujuan. Komponen ini bertindak sebagai mediator antara lapisan transpor Pub/Sub dan layanan target. Fitur ini berfungsi pada layanan yang ada dan juga mendukung layanan sinyal (termasuk yang tidak diekspos di luar cluster yang dikelola sepenuhnya) sekaligus menyederhanakan penyiapan dan pemeliharaan. Perhatikan bahwa siklus proses penerusan peristiwa dikelola oleh Eventarc, dan jika Anda tidak sengaja menghapus penerusan peristiwa, Eventarc akan memulihkan komponen ini.
3 Peristiwa untuk eksekusi alur kerja diubah dan diteruskan ke alur kerja sebagai argumen runtime. Alur kerja dapat menggabungkan dan mengatur Google Cloud dan layanan API berbasis HTTP dalam urutan yang Anda tentukan.
4 Semua fungsi berbasis peristiwa di fungsi Cloud Run menggunakan pemicu Eventarc untuk mengirimkan peristiwa. Anda dapat mengonfigurasi pemicu Eventarc saat men-deploy fungsi Cloud Run menggunakan antarmuka fungsi Cloud Run.
Kasus penggunaan utama
Eventarc mendukung banyak kasus penggunaan untuk aplikasi tujuan. Berikut beberapa contohnya:
Mengonfigurasi dan memantau |
|
Menyelaraskan |
|
Analisis |
|
Acara
Peristiwa adalah data yang menunjukkan kemunculan dan konteksnya. Peristiwa adalah unit komunikasi terpisah, yang tidak bergantung pada peristiwa lain. 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 berminat. Pemilihan rute dilakukan berdasarkan informasi yang terdapat dalam peristiwa, tetapi peristiwa tidak mengidentifikasi tujuan pemilihan rute tertentu. Eventarc mendukung peristiwa dari lebih dari 130 penyedia Google. Penyedia ini mengirim 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 (atau konsumen) peristiwa melalui langganan push Pub/Sub.
Cloud Run
Pelajari cara mem-build layanan penerima peristiwa yang dapat di-deploy ke Cloud Run.
Untuk menentukan cara terbaik merutekan peristiwa ke layanan Cloud Run, lihat Rute peristiwa.
Fungsi Cloud Run
Semua fungsi berbasis peristiwa di fungsi Cloud Run 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 fungsi Cloud Run menggunakan antarmuka fungsi Cloud Run.
GKE
Eventarc mendukung pembuatan pemicu yang menargetkan layanan Google Kubernetes Engine (GKE). Hal ini mencakup endpoint publik 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 kepada akun layanan Eventarc.
Anda harus mengaktifkan Workload Identity Federation for GKE di cluster GKE tempat layanan tujuan berjalan. Workload Identity Federation untuk GKE diperlukan untuk menyiapkan forwarder peristiwa dengan benar dan merupakan cara yang direkomendasikan untuk mengakses layanan Google Cloud dari aplikasi yang berjalan dalam GKE karena properti keamanan dan pengelolaannya yang lebih baik. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan Workload Identity.
Endpoint HTTP internal dalam jaringan VPC
Anda dapat mengonfigurasi pemilihan rute peristiwa ke endpoint HTTP internal di 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. Alur kerja memerlukan email akun layanan IAM yang akan digunakan pemicu Eventarc untuk memanggil eksekusi alur kerja. Sebaiknya gunakan akun layanan dengan hak istimewa terendah yang diperlukan untuk mengakses resource yang diperlukan. Untuk informasi selengkapnya, lihat Membuat dan mengelola akun layanan.
Format dan library peristiwa
Eventarc mengirimkan peristiwa, terlepas dari penyedianya, 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
. Buffering Protokol (atau Protobuf) adalah mekanisme yang dapat diperluas dan tidak bergantung pada bahasa dan platform 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 peristiwanya. Untuk mengetahui informasi selengkapnya, baca Masalah umum.
Tujuan target seperti fungsi Cloud Run, Cloud Run, dan GKE menggunakan peristiwa dalam format HTTP. Untuk tujuan Workflows, layanan Workflows mengonversi peristiwa menjadi objek JSON, dan meneruskan peristiwa ke dalam eksekusi alur kerja sebagai argumen runtime.
Menggunakan cara standar untuk mendeskripsikan metadata peristiwa akan memastikan konsistensi, aksesibilitas, dan portabilitas. Konsumen peristiwa dapat membaca peristiwa ini secara langsung, atau Anda dapat menggunakan Library Klien Cloud dalam berbagai bahasa (termasuk C++, C#, Go, Java, Node.js, PHP, Python, dan Ruby) untuk membaca dan mengurai peristiwa. Ada juga serangkaian CloudEvents SDK khusus bahasa.
Struktur isi HTTP untuk semua peristiwa tersedia di repositori GitHub Google CloudEvents.
Kompatibilitas mundur
Eventarc menganggap penambahan atribut dan kolom berikut 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 merekam dan menindaklanjuti peristiwa tertentu tersebut, termasuk pemilihan rutenya dari sumber peristiwa ke tujuan target. Untuk informasi selengkapnya, lihat Representasi REST resource pemicu dan Penyedia dan tujuan peristiwa.
Perhatikan bahwa langganan Pub/Sub yang dibuat untuk Eventarc akan tetap ada 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.
Layanan Google Cloud menulis entri ke log ini. Anda dapat membuat filter untuk pemicu Eventarc menggunakan nilai serviceName dan methodName dalam log audit. Untuk mengetahui nilai yang tepat,
lihat
layananGoogle Cloud 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 mengirim 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 service.
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 mengirim 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
LayananGoogle Cloud seperti Cloud Storage dapat disiapkan untuk bersifat 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 cocok dengan lokasi layanan Google Cloud yang menghasilkan peristiwa dan menghindari masalah performa dan retensi data yang disebabkan oleh pemicu global.
Anda dapat menentukan lokasi pemicu menggunakan flag --location
dengan setiap perintah.
Untuk tujuan Cloud Run, jika tanda --destination-run-region
tidak ditentukan, layanan akan diasumsikan berada di region yang sama dengan pemicu. Untuk mengetahui informasi selengkapnya, lihat
referensi Google Cloud CLI.
Keandalan dan pengiriman
Perkiraan waktu 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, yang pertama masuk pertama keluar. Perhatikan bahwa memiliki urutan yang ketat akan merusak ketersediaan dan fitur skalabilitas Eventarc yang cocok dengan lapisan transpornya, Cloud Pub/Sub. Untuk 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 region Google Cloud .
Perhatikan bahwa ada kuota dan batas penggunaan yang berlaku secara umum untuk Eventarc. Ada juga kuota dan batas penggunaan yang khusus untuk Alur Kerja.
Kebijakan percobaan ulang peristiwa
Karakteristik percobaan ulang Eventarc cocok dengan karakteristik lapisan transpornya, Cloud Pub/Sub. Untuk informasi selengkapnya, lihat Mencoba ulang permintaan dan Penundaan push.
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:
- Buka halaman detail Pemicu.
- Klik topik.
- Klik tab Langganan.
Setiap langganan yang dibuat secara otomatis oleh Eventarc akan memiliki format ini: projects/PROJECT_ID/subscriptions/eventarc-REGION-TRIGGER_ID-sub-SUBSCRIPTION_ID
. Untuk mengetahui informasi selengkapnya tentang batas langganan, lihat Batas resource Pub/Sub.
Jika Pub/Sub mencoba mengirimkan pesan, tetapi tujuannya tidak dapat mengonfirmasinya, Pub/Sub akan mengirim pesan lagi dengan backoff eksponensial minimum 10 detik. Jika tujuan terus tidak mengonfirmasi pesan, lebih banyak waktu akan ditambahkan ke penundaan di setiap percobaan ulang (maksimal 600 detik) dan pesan akan dikirim ulang ke tujuan.
Perhatikan bahwa Alur Kerja mengonfirmasi peristiwa segera setelah eksekusi alur kerja dimulai.
Topik yang dihentikan pengirimannya
Jika tujuan tidak menerima pesan, Anda dapat meneruskan pesan yang tidak terkirim ke topik yang dihentikan pengirimannya (juga dikenal sebagai antrean yang dihentikan pengirimannya). Topik dead-letter dapat menyimpan pesan yang tidak dapat dikonfirmasi oleh tujuan. Anda harus menetapkan topik dead-letter saat membuat atau memperbarui langganan Pub/Sub, bukan saat membuat topik Pub/Sub atau saat Eventarc membuat topik Pub/Sub. Untuk mengetahui informasi selengkapnya, lihat Menangani kegagalan pesan.
Error yang tidak menjamin percobaan ulang
Jika aplikasi menggunakan Pub/Sub sebagai sumber peristiwa dan peristiwa tersebut tidak dikirim, peristiwa akan otomatis dicoba ulang, kecuali untuk error yang tidak menjamin percobaan ulang. Peristiwa ke tujuan alur kerja dari sumber apa pun tidak akan dicoba lagi jika alur kerja tidak dijalankan. Jika eksekusi alur kerja dimulai, tetapi kemudian gagal, eksekusi tidak akan dicoba ulang. Untuk menyelesaikan masalah layanan tersebut, Anda harus menangani error dan percobaan ulang dalam alur kerja.
Acara duplikat
Peristiwa duplikat mungkin dikirim ke pengendali peristiwa. Menurut
spesifikasi CloudEvents,
kombinasi atribut source
dan id
dianggap unik, dan
karenanya setiap peristiwa dengan kombinasi yang sama dianggap duplikat.
Anda harus menerapkan
pengelola peristiwa idempoten sebagai
praktik terbaik umum.
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 informasi selengkapnya, lihat Observabilitas di Eventarc.
Log mendetail untuk Eventarc, Cloud Run, fungsi Cloud Run, GKE, Pub/Sub, dan Alur Kerja tersedia dari Cloud Audit Logs.
Pemulihan dari bencana
Anda dapat memanfaatkan zona dan region untuk mencapai keandalan jika terjadi penghentian layanan. 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 pemulihan dari bencana untuk pemadaman infrastruktur cloud.
Standar kepatuhan
Eventarc mematuhi sertifikasi dan standar ini.
Langkah berikutnya
- Pelajari lebih lanjut pemrosesan peristiwa serverless
- Coba Codelab
- Membuat pemicu untuk penyedia, jenis peristiwa, dan tujuan tertentu
- Memecahkan masalah