Dokumen ini menjelaskan cara membuat alur kerja berbasis peristiwa yang dipicu oleh perubahan status di tugas Dataflow Anda.
Misalnya, alur kerja Anda dapat:
- Mengirimkan pemberitahuan kepada teknisi yang bertugas jika tugas penting gagal.
- Memberi tahu pengguna saat tugas batch selesai, atau memulai tugas Dataflow lain.
- Membersihkan resource yang digunakan oleh tugas, seperti bucket Cloud Storage.
Ringkasan
Eventarc adalah layanan Google Cloud yang dapat memproses peristiwa dari layanan lain dan merutekannya ke berbagai tujuan.
Saat Anda menjalankan tugas Dataflow, tugas akan bertransisi melalui berbagai
status, seperti JOB_STATE_QUEUED, JOB_STATE_RUNNING, dan JOB_STATE_DONE.
Integrasi Dataflow dengan Eventarc memungkinkan Anda memicu tindakan saat tugas berubah status.
Karena Eventarc adalah layanan terkelola, Anda tidak perlu menyediakan atau mengelola infrastruktur yang mendasarinya.
Sebelum memulai
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Eventarc APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Eventarc APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
Untuk menggunakan Eventarc API, project Anda harus memiliki kuota yang cukup. Selain itu, akun layanan yang terkait dengan pemicu Eventarc harus memiliki izin yang sesuai.
Memilih tujuan acara
Pilih tujuan peristiwa untuk menerima peristiwa. Tujuan menentukan langkah berikutnya dalam alur kerja Anda.
Contoh:
- Untuk mengirimkan pemberitahuan SMS, Anda dapat menggunakan fungsi Cloud Run untuk membuat pemicu HTTP mandiri.
- Untuk alur kerja yang lebih kompleks, Anda dapat menggunakan Workflows.
- Jika pipeline Dataflow Anda adalah bagian dari solusi yang lebih besar yang berjalan di Google Kubernetes Engine, pemicu dapat merutekan peristiwa ke layanan GKE yang berjalan di cluster Anda.
Untuk mengetahui informasi selengkapnya tentang gaya arsitektur ini, lihat Arsitektur berbasis peristiwa dalam dokumentasi Eventarc.
Buat pemicu
Untuk membuat pemicu Eventarc untuk perubahan status tugas Dataflow, lihat salah satu dokumen berikut:
- Merutekan peristiwa Dataflow ke Cloud Run
- Merutekan peristiwa Dataflow ke Google Kubernetes Engine
- Merutekan peristiwa Dataflow ke Workflows
- Membuat pemicu untuk Cloud Run Functions
Secara opsional, Anda dapat memfilter peristiwa menurut ID tugas Dataflow. Misalnya, Anda dapat memilih ID tugas yang cocok dengan ekspresi reguler. Untuk mengetahui informasi selengkapnya, lihat Memahami pola jalur.
Memproses peristiwa
Data peristiwa menjelaskan tugas Dataflow pada saat peristiwa dipicu. Payload serupa dengan jenis resource
Job,
dengan kolom steps, pipeline_description, dan transform_name_mapping
dihapus. Selain itu, bergantung pada status tugas, beberapa kolom mungkin tidak ada.
Berikut contoh payload:
{
"id":"2023-04-13_16_28_37-12345678",
"projectId":"my-project",
"name":"job1",
"currentState":"JOB_STATE_QUEUED",
"currentStateTime":"2023-04-13T23:28:37.437622Z",
"createTime":"2023-04-13T23:28:37.437622Z",
"location":"us-central1",
"startTime":"2023-04-13T23:28:37.437622Z"
}
Untuk mengetahui informasi selengkapnya tentang status tugas, lihat topik berikut: