Workflows adalah platform orkestrasi terkelola sepenuhnya yang menjalankan layanan dalam urutan yang Anda tentukan: alur kerja. Alur kerja ini dapat menggabungkan layanan, termasuk layanan kustom yang dihosting di Cloud Run atau Cloud Functions, layanan Google Cloud seperti Cloud Vision AI dan BigQuery, serta API berbasis HTTP apa pun.
Dengan menyertakan Workflows ke dalam solusi, Anda dapat membuat dependensi layanan menjadi eksplisit dan dapat diamati secara menyeluruh. Alur kerja yang menetapkan proses aplikasi, operasional, atau bisnis menyediakan narasi sumber tepercaya atau kanonis untuk proses tersebut.
Alur kerja tidak memerlukan server, ditingkatkan skalanya sesuai kebutuhan, dan tidak ada biaya yang dikeluarkan selama tidak ada aktivitas. Karena tidak berisi kode atau dependensi library, alur kerja tidak memerlukan patch keamanan. Setelah Anda men-deploy alur kerja, Anda dapat memperkirakannya akan dijalankan dengan andal tanpa pemeliharaan. Alur kerja dapat menyimpan status, mencoba ulang, melakukan polling, atau menunggu hingga satu tahun.
Alur kerja mematuhi sertifikasi dan standar ini.
Diagram berikut menunjukkan contoh penggunaan Workflows untuk mengorkestrasi layanan:
Kasus penggunaan penting
Workflows mendukung banyak kasus penggunaan. Berikut beberapa contohnya:
Orkestrasi layanan | Buat solusi dengan menggabungkan layanan—Melakukan serangkaian operasi di beberapa sistem, menunggu semua operasi selesai.
Dapat berbasis peristiwa. Contoh:
|
Tugas batch | Beroperasi pada beberapa item—Melakukan operasi pada sekumpulan item atau
data batch. Sering dijadwalkan. Contoh:
|
Proses bisnis | Mengotomatiskan alur kerja lini bisnis—Mengenkode langkah-langkah dalam proses bisnis, termasuk kondisi, tindakan, dan peristiwa yang memerlukan interaksi manusia. Contoh:
|
Otomatisasi proses IT | Eksekusi operasi layanan yang terkelola—Urutan skrip operasi layanan Google Cloud dengan mudah. Contoh:
|
Konsep inti
Alur kerja terdiri dari serangkaian langkah yang dijelaskan menggunakan sintaksis Alur kerja, dan dapat ditulis dalam YAML atau JSON. Ini adalah definisi alur kerja. Untuk mendapatkan penjelasan mendetail tentang sintaksis Alur kerja, lihat Referensi sintaksis.
Setelah dibuat, alur kerja akan di-deploy, yang membuat alur kerja siap dieksekusi. Pelajari cara membuat dan memperbarui alur kerja di Google Cloud Console atau dengan menggunakan Google Cloud CLI. Anda juga dapat membuat alur kerja dengan menggunakan IDE atau editor kode sumber pilihan dan menyiapkan pelengkapan otomatis dan validasi sintaksis.
Eksekusi adalah satu kali eksekusi logika yang terdapat dalam definisi
alur kerja. Alur kerja yang belum dijalankan tidak akan dikenai biaya. Semua
eksekusi alur kerja bersifat independen, dan penskalaan cepat produk memungkinkan
jumlah eksekusi serentak yang tinggi. Anda dapat menjalankan alur kerja menggunakan library klien, di Konsol Google Cloud, menggunakan Google Cloud CLI, atau dengan mengirim permintaan HTTP POST
ke URL pemanggilan alur kerja menggunakan Workflows REST API. Untuk mengetahui detailnya, lihat
Menjalankan alur kerja.
Kemampuan utama
Berikut adalah beberapa kemampuan utama Workflows.
Kontrol eksekusi
- Langkah
- Untuk membuat alur kerja, tentukan langkah-langkah yang diperlukan dan urutan eksekusi menggunakan sintaksis Workflows. Setiap alur kerja harus memiliki setidaknya satu langkah. Secara default, Workflows memperlakukan langkah seolah-olah berada dalam daftar yang diurutkan dan menjalankannya satu per satu hingga semua langkah telah berjalan. Untuk mengetahui detailnya, lihat Langkah-langkah.
- Kondisi
- Anda dapat menggunakan blok
switch
sebagai mekanisme pemilihan yang memungkinkan nilai ekspresi mengontrol alur eksekusi alur kerja. Untuk mengetahui detailnya, lihat Kondisi. - Iterasi
- Anda dapat menggunakan loop
for
untuk melakukan iterasi pada urutan angka atau melalui pengumpulan data, seperti daftar atau peta. Untuk mengetahui detailnya, lihat Iterasi. - Langkah sejajar
- Anda dapat menggunakan langkah
parallel
untuk menentukan bagian alur kerja (cabang atau loop) yang dapat dieksekusi secara serentak. Untuk mengetahui detailnya, lihat Langkah paralel. - Sub-alur kerja
- Sub-alur kerja berfungsi mirip dengan rutinitas atau fungsi dalam bahasa pemrograman, sehingga Anda dapat merangkum satu atau serangkaian langkah yang akan diulangi oleh alur kerja Anda beberapa kali. Untuk mengetahui detailnya, lihat Sub-alur kerja.
Memicu eksekusi
- Manual
- Anda dapat mengelola alur kerja dari Konsol Google Cloud atau dari command line menggunakan Google Cloud CLI. Dukungan visualisasi saat mengedit sintaksis Alur kerja juga tersedia melalui Konsol Google Cloud.
- Terprogram
- Library Klien Cloud untuk Workflows API, atau REST API, dapat digunakan untuk mengelola alur kerja. Untuk mengetahui detailnya, lihat Workflow API dan referensi.
- Dijadwalkan
- Anda dapat menggunakan Cloud Scheduler untuk menjalankan alur kerja pada jadwal tertentu, seperti setiap hari Senin pukul 09.00 atau setiap 15 menit. Untuk mengetahui detailnya, baca bagian Menjadwalkan alur kerja menggunakan Cloud Scheduler.
- Argumen runtime
- Data yang diteruskan saat runtime dapat diakses dengan menambahkan kolom
params
ke alur kerja utama Anda (ditempatkan di blokmain
). Blokmain
menerima satu argumen yang merupakan jenis data JSON yang valid. Kolomparams
memberi nama variabel yang digunakan alur kerja untuk menyimpan data yang Anda teruskan. Untuk mengetahui detailnya, lihat Argumen runtime.
Menghubungkan layanan
- API HTTP
- Anda dapat menentukan langkah alur kerja yang melakukan panggilan HTTP dan menetapkan respons dari panggilan ke variabel. Misalnya, Anda dapat memanggil layanan Google Cloud, seperti Cloud Functions atau Cloud Run melalui permintaan HTTP. Permintaan HTTP dan HTTPS didukung. Untuk mengetahui detailnya, lihat Membuat permintaan HTTP dan Memanggil Cloud Functions atau Cloud Run.
- Anda dapat memanggil infrastruktur lokal, Compute Engine, Google Kubernetes Engine (GKE), atau endpoint Google Cloud lainnya dengan mengaktifkan Identity-Aware Proxy (IAP). IAP memungkinkan Anda membuat lapisan otorisasi pusat untuk aplikasi yang diakses melalui HTTPS, sehingga Anda dapat menggunakan model kontrol akses tingkat aplikasi, bukan mengandalkan firewall tingkat jaringan. Untuk mengetahui informasi selengkapnya, lihat Memanggil pribadi lokal, Compute Engine, GKE, atau endpoint lainnya.
- Atau, Anda dapat menargetkan endpoint pribadi untuk panggilan HTTP dari eksekusi alur kerja menggunakan registry layanan Direktori Layanan dengan Alur kerja. Dengan membuat endpoint pribadi dalam jaringan Virtual Private Cloud (VPC), endpoint tersebut dapat mematuhi Kontrol Layanan VPC. Untuk mengetahui informasi selengkapnya, lihat Memanggil endpoint pribadi yang sesuai dengan Kontrol Layanan VPC.
- Konektor
- Alur kerja memublikasikan konektor yang dapat digunakan untuk terhubung ke Google Cloud API lainnya dalam alur kerja, dan untuk mengintegrasikan alur kerja Anda dengan produk Google Cloud tersebut. Fungsi tersebut menyederhanakan layanan panggilan karena menangani pemformatan permintaan untuk Anda, serta menyediakan metode dan argumen sehingga Anda tidak perlu mengetahui detail Google Cloud API. Untuk mengetahui detailnya, lihat Memahami konektor.
- Library standar dan variabel lingkungan
- Library standar Workflows, variabel lingkungan bawaan, dan variabel lingkungan buatan pengguna memungkinkan Anda membuat argumen secara efisien untuk layanan dan respons proses.
- Library standar mencakup modul dan fungsi yang sering digunakan, seperti untuk jenis data dan konversi format. Tidak perlu mengimpor atau memuat library dalam alur kerja karena fungsi library akan langsung berfungsi. Untuk mengetahui detailnya, lihat Ringkasan library standar.
- Anda dapat mengakses informasi lingkungan alur kerja (seperti lokasi atau ID project) menggunakan variabel lingkungan bawaan. Variabel lingkungan bawaan tidak memerlukan deklarasi dan tersedia di setiap eksekusi alur kerja. Untuk mengetahui detailnya, lihat Variabel lingkungan bawaan.
- Saat men-deploy alur kerja, Anda dapat menetapkan pasangan kunci dan string nilai arbitrer sebagai variabel lingkungan buatan pengguna yang dapat diakses oleh alur kerja Anda saat runtime. Misalnya, Anda dapat membuat alur kerja yang dikonfigurasi secara dinamis, bergantung pada lingkungan tempat alur kerja tersebut di-deploy. Untuk mengetahui detailnya, lihat Menggunakan variabel lingkungan.
Penanganan error
Anda dapat membuat alur kerja Anda tangguh dan menyesuaikan perilakunya saat terjadi kegagalan dengan menggunakan penanganan pengecualian Workflows, termasuk percobaan ulang panggilan HTTP otomatis dengan back-off eksponensial, pengendali error kustom, dan fitur lanjutan lainnya. Untuk mengetahui detailnya, lihat Error alur kerja.
Menunggu
Callback memungkinkan eksekusi alur kerja menunggu layanan lain membuat permintaan ke endpoint callback; permintaan tersebut akan melanjutkan eksekusi alur kerja. Dengan callback, Anda dapat memberi tahu alur kerja bahwa peristiwa tertentu telah terjadi, dan menunggu peristiwa tersebut tanpa polling. Untuk mengetahui detailnya, lihat Menunggu menggunakan callback.
Anda dapat menjeda eksekusi alur kerja dengan menambahkan langkah tidur ke definisi alur kerja Anda. Anda kemudian dapat menggunakan sys.sleep
untuk melakukan polling data pada interval tertentu. Untuk mengetahui detailnya, lihat Menunggu menggunakan polling.
Autentikasi dan kontrol akses
Karena setiap eksekusi alur kerja memerlukan panggilan yang diautentikasi, Anda dapat mengurangi risiko panggilan yang tidak disengaja atau berbahaya dengan menggunakan Workflows. Anda juga dapat menyederhanakan interaksi dengan Google Cloud API menggunakan akun layanan berbasis IAM, dan Anda dapat menyimpan kunci dan sandi dengan aman untuk melakukan autentikasi ke API eksternal menggunakan konektor Secret Manager. Untuk mengetahui detailnya, pelajari autentikasi dan kontrol akses lebih lanjut.
Kemampuan observasi
Workflows akan otomatis menghasilkan log eksekusi untuk eksekusi alur kerja di Cloud Logging. Anda juga dapat mengontrol kapan log dikirim ke Logging selama eksekusi alur kerja melalui logging panggilan atau log kustom. Untuk mengetahui detailnya, lihat Mengirim log ke Cloud Logging.
Informasi logging audit tersedia melalui Cloud Audit Logs. Untuk mengetahui detailnya, lihat Informasi logging audit alur kerja.
Anda dapat mengambil histori eksekusi alur kerja yang ditentukan sebagai daftar entri langkah. Setiap entri mewakili satu langkah atau blok petunjuk dalam eksekusi alur kerja. Entri langkah dapat membantu Anda menentukan sumber error atau mengoptimalkan performa alur kerja.
Contoh kode
Anda dapat menemukan berbagai contoh kode Workflows yang berguna di halaman contoh.
Langkah selanjutnya
Mulai menggunakan Workflows dari Google Cloud Console atau gcloud CLI.
Pelajari lebih lanjut cara membuat dan memperbarui alur kerja.
Pelajari cara mengontrol urutan langkah-langkah alur kerja yang dijalankan.